How to Avoid Pushing In-development Changes to The Production Repository

Once a code base is sophisticated enough to require both a public, customer-facing production environment and private development environment, it becomes vital to prevent potentially breaking development changes from being […]
Controlled Development Environments

Docker is a great solution for controlled development environments. One of the great things about Docker is specifying an entire environment. You create a list that includes the OS, along […]
Debugging Step 1 – Check the Datasheet

When setting up something like a new sensor for a project feature, it’s become typical for engineers to grab a development kit for their ease of setup and the speed […]
Choosing a Continuous Integration (CI) compiler

Choosing the right Continuous Integration (CI) compiler is crucial because it impacts code quality, deployment reliability, and development velocity. A consistent compiler version and configuration ensure that the same source […]
Automating Reliability Engineering with Unit Testing, HIL Testing & EmbedOps – Part 1

A key challenge for embedded systems developers is ensuring high-reliability operation in products designed for years-long deployments, sometimes in remote locations. A prime example of such a device is a […]
Firmware Development vs. Software Development: What Sets These Disciplines Apart

Managing firmware projects is fundamentally different from managing traditional software projects. While both disciplines require technical expertise, planning, and coordination, firmware project management introduces unique challenges due to its deep […]
Be The Cppcheck Ruler

realize that you need to create your own rules to catch specific bugs, then this is the right blog for you. There are two ways to set your own Cppcheck […]
The Git Cherry-pick and Git Rebase Interactive Combo

Version control is necessary, but using it well is an art. Today I am going to give an overview of two Git commands that I found helpful during software development, […]
IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part 1

The IEC-62304 Software Lifecycle Standard requires a lot of self-reflection to scrutinize and document your development processes. There is an endless pursuit of perfection when it comes to heavily regulated […]
Docker: An Ideal Development Environment

Docker is a revolutionary tool that provides speed and repeatability for an embedded team. While traditionally used in non-firmware environments, there is enormous potential to improve the development efforts of […]
Cross-Functional Team Collaboration From An Engineer’s Perspective

Due to the complexity of a firmware project, it requires the involvement of teams with diverse expertise. The success of a project is dependent on the interaction between the teams. […]
Best Tools for Firmware Developers in 2025

This blog post will touch on some of the best and most useful Firmware development tools. Before we begin, there are a few caveats to be aware of. The “Best” […]