Posted in 2025

Embedded Time Management

As an embedded project matures, having methods to track timing and durations become necessary. In this post I’ll describe how I typically implement time in an embedded project so its cross platform while also not slowing down unit tests.

Read more ...


Release Versioning In C/C++ Projects

How do you define semver in a large C/C++ project? For CMake-based projects the simplest solution is to rely on the version info passed to the CMake project directive. But what do you do when you have multiple languages/tools in a monorepo that need access to the project semver? In this situation, I’ve developed a somewhat simple solution for a single, easily accessible source of truth on project semver information.

Read more ...


Writing Embedded Device Drivers

In this post I wanted to quickly describe some of the guiding principles I follow when writing device drivers in C++ for an embedded project. By “device driver” I mean the code that provides an interface between your application and some hardware device on an embedded system. For instance: an IMU, a temperature sensor, an ADC sensor, a motor controller, etc.

Read more ...


Docker for SW Development

This is from a lunch-n-learn I hosted which aimed to showcase the features and advantages of using docker during the development process. It includes with a few tutorials on how to use it.

Read more ...