Embedded Artistry
Flashing Yocto Images from MacOS
Convenience Gone Wrong: A C++ auto Story
Battling Perfectionism in Creation
Pushing Git Submodule Commits Automatically
Monorepo Tooling Update: Signed Commit Support in Git 2.52
The After-Hours Consulting Trap
Configuring Git Remotes: Fetch Only One Branch and No Tags
What I’ve Been Up To (20251205)
Life After Burnout
Automating Away the Fun Parts
Creating Deterministic Zip Files with Git Commit Timestamps
Papers in Systems: Schön on Dynamic Conservatism
Reclaim Your Data: Freeing a Wi-Fi Sensor from the Cloud
2022-2023 Quarterly Discussion Panel Archives
Exploring Serverless CI/CD for Embedded Devices
How to cherry-pick Specific Files from a Commit
2023 in Review
Managing Issues and Improving Products After Launch
Resolving Git Commit History Divergence Due to Case-Sensitive Rename Operations
Responses to the Commentariat on the -Werror Article
Leveraging Your Toolchain to Improve Security
Best Practices for Safeguarding Your Connected Devices
Q&A: How Do You Stay on the Path and Make it to “Done”?
Q&A: How Many Iterations Do You Recommend for Scaling From a Prototype to Mass Production?
Q&A: To What Degree Should We Understand Other Disciplines?
Meson Pattern: Monorepo that Supports Individual Subproject Builds
From Concept to Launch: What It Takes to Build and Ship a New Device
The Simple Fixes on the Quest for Improved Performance
Schrödinger’s Meeting
Building a Simplified CLI Using Invoke (for Monorepo Management)
Replacing find Shell Commands with Python
Q&A: What Pieces of the OTA Update Pipeline Should You Front Load?
Q&A: How Do You Manage Updates that Introduce Incompatible Changes?
Q&A: Where Should Firmware Update Capabilities Live?
Dealing With Duplicated Files in a Monorepo
Over-the-Air Updates and Fleet Management at Scale
Configuring a Linker Script for Accurate Linker Memory Usage Reporting
Saving 10 Minutes on Documentation Wasted Hours of My Client’s Time
Does Everything Belong in a Monorepo?
Getting Rid of Old Code