Languages
C++, C, Python, Rust, C#, Bash
C++ • Embedded Linux • Leadership
I write about lessons learned from real projects - automotive platforms, Set-Top Box systems, IoT devices, Linux-based products and the everyday challenges of building reliable software close to the system.
This blog is also a place where I share thoughts on technical leadership, communication, mentoring, and cooperation in engineering teams because good software is not only about code, but also about how people work together.
I’m a Lead Software Engineer focused on C++ and Embedded Linux. I have hands-on experience with automotive platforms, Set-Top Box systems and IoT devices - debugging complex issues, improving reliability and leading engineering teams through technical challenges.
Skills
C++, C, Python, Rust, C#, Bash
Yocto, Buildroot, OpenWrt, systemd, D-Bus, OpenRC, Device Tree, Linux device drivers, boot process
Over-the-Air (OTA) updates, SOME/IP, Protobuf, UDS, OBD, DTC, DLT, ASPICE
DVB-T/S/C, DVB-SI/PSI-SI, MPEG Transport Streams, RDK-V, GStreamer, Broadcom APIs
GDB, strace, Valgrind, perf, GoogleTest, clang-tidy, Coverity, SonarQube, VectorCAST
Team leading, mentoring, technical documentation, code reviews, release readiness
Blog
June 3, 2026
std::optional and std::expected are both useful modern C++ return types. But they should not be used for the same kind of problem. […]
April 30, 2026
Move semantics is powerful. But std::move is often misunderstood. I keep seeing it used like a “make it faster” button. So it […]
May 31, 2026
Exposing a D-Bus method is only half of the problem. The other half is deciding who is allowed to call it. In […]
May 23, 2026
Reading an existing D-Bus API is useful. But sooner or later, your embedded daemon needs to expose its own API too. In […]
May 17, 2026
Most of the time, we talk to systemd through systemctl. It is convenient, readable and usually exactly what you want. But systemctl […]