C++
2026

Why Most Embedded Software Is Overcoupled - And How Dependency Injection Fixes It
Most embedded bugs aren’t hardware problems. They’re design problems , born from code that grew organically across board revisions, tightly knotted around pin numbers, register addresses, and brittle HAL calls scattered everywhere and with scalability things can get messy, adding to the technical debt. Its important we talk about how not to make your embedded software tightly coupled and leave room for extension & scalibility Continue reading Why Most Embedded Software Is Overcoupled - And How Dependency Injection Fixes It

Local First, Building Portable Embedded C++ pipeline with self-hosted CI
How Woodpecker CI, Cosmopolitan, and Google Pigweed give small firmware teams automated build-test-flash pipelines Continue reading Local First, Building Portable Embedded C++ pipeline with self-hosted CI
2025

Performance cost: std::allocator vs std::pmr::polymorphic_allocator
This blog post explores why memory management is a critical bottleneck in embedded systems and how C++17’s Polymorphic Memory Resources (PMR) compare to the default std::allocator in performance, determinism, and memory efficiency. (See correction notice - original results were flawed.) Continue reading Performance cost: std::allocator vs std::pmr::polymorphic_allocator

7 C++ Inheritance pain-points Rust Fixes Forever
Seven ways C++ inheritance can create issues, and how Rust’s composition model fixes them all. From diamond problems to fragile base classes, see why composition wins in the long run. Continue reading 7 C++ Inheritance pain-points Rust Fixes Forever

RAII in C++ vs Rust- How Each Language Manages Resources Without the Garbage collector
Managing memory and resources like files, network connections, or locks is essential in programming. While some languages rely on garbage collectors for automatic cleanup (Java), C++ and Rust use RAII (Resource Acquisition Is Initialization) to handle this deterministically. Continue reading RAII in C++ vs Rust- How Each Language Manages Resources Without the Garbage collector

Build Systems in Embedded Development: From Make to Pigweed
Why does your code compile on your machine but fail on your teammate’s? Explore Make, CMake, and Pigweed—the tools that turn scattered C++ files into working firmware. Learn which one you actually need and why that answer might surprise you. Continue reading Build Systems in Embedded Development: From Make to Pigweed

C++ String Operations
C++’s for String Puzzels Continue reading C++ String Operations

Bitwise Operations in C/C++
A comprehensive guide to bitwise operations in C and C++, covering operators, practical applications, and common patterns for efficient programming. Continue reading Bitwise Operations in C/C++