* Professional
*\
Over my professional career in software engineering, the common themes that have emerged in the work I do are safety criticality and constrained resources. The areas of the field, where I have worked most, can be divided into embedded and system software, FPGAs and application software.
I have extensive professional experience with bare-metal and operating system-based firmware development for soft processors and microcontrollers in regular and safety-critical contexts. The operating systems I have worked with in the embedded and system software context include (embedded) Linux, Windows (IoT) and several RTOS flavors. For the Windows platform, I have developed performance critical kernel mode drivers designed to work together with FPGA designs. My main working language in this field has been C.
In the application software field I have designed and implemented test frameworks and test software, worked on network applications and programmed application libraries. My design work has mostly been object-oriented and has targeted applications up to several tens of thousands of lines of code. The languages I have worked with in this field have mostly been C++, Python and C.
This website's *HTTPS server, which is one of my long-term personal pet projects, is a well visible example of my application software work.
The FPGA work I have done has been centered around networking and signal processing and I have been responsible for high-level design choices as well as IP designs both in regular and safety-critical applications. My experience comprises design and simulation in VHDL and SystemVerilog using QuestaSim and ModelSim for simulation as well as Xilinx Vivado and Intel Quartus for design.