Experience: 4 years

Since I started programming with microcontrollers, C became my first “serious” language. But at some point I became interested in writing native desktop GUIs, and started to learn, how classes and templates can help me at large…

Note: I’m not interested in C/C++ at the moment.


In C++, I developed an in-house Hard RTOS which is used in the control system of the rotorcraft UAV . Despite the widespread belief that “C++ has too big overhead for microcontrollers, especially for providing hard real-time capabilities”, everything somehow fitted in memory, and hard real-time was provided on microcontrollers with one CPU without a floating point coprocessor.

Before that, already in C, I worked with FreeRTOS , which I used to develop control systems for switched-mode power converters and for the firmware of a radio modems that worked with an Iridium satellite constellation and was used in then-developed UAV.


Since the embedded operating systems I worked with were written in C and C++, DSP modules were also written in the corresponding languages for the needs of control systems. Basically, it was highly simplified libraries for linear algebra and mathematical analysis for the implementation of various filters: Kalman , elliptic , FIR , IIR .

Simulation model

In the course of work on the UAV control system, I also developed a simulation model of the helicopter, which, among other things, had to work with full-fledged hardware versions of control units ( HIL ). This work was done using adevs , ODE solvers from SUNDIALS and linear algebra routines from Blaze .


Before switching to web-based solutions (see Python ), I spent some time developing interfaces for testing equipment in Qt. They’re responsive, indeed, but it’s too much boilerplate for a simple set of buttons, switches and graphs…


email icon telegram icon github icon