An insidious C++ error related to my use of auto ended up driving me nuts for hours this week. I was revisiting a driver I wrote, and I noticed that my latest version was giving me consistent bogus readings. I checked an older version, which was providing correct values. I skimmed the code but couldn't …
Continue reading "Convenience Gone Wrong: A C++ auto Story"
Sometimes this comes as a question, other times it's just the default way that people approach consulting or contracting work. Here's one form, though many others are possible: ""Quote I have an opportunity to do some contract development work, and the client is ok with me doing the work after hours or on weekends. My …
Continue reading "The After-Hours Consulting Trap"
9 January 2026 by Phillip JohnstonThis page collects documented debugging stories that we found interesting or useful. Table of Contents: Articles Audio Video Related Articles A Disappearing Service Processor by Laura Abbott of Oxide Computer Company During some of our first attempts at putting our next generation Cosmo sled into an Oxide rack, we would see the Service Processor drop off the network. This is a tricky situation to debug, as without network access we have limited insight into the state of the SP itself. A Gap in the TrustZone Preset Settings for the LPC55S69 / Oxide by Laura Abbott …
Continue reading “Debugging Case Studies”
Today we have a guest post from Dave Goldberg. Dave is an embedded software engineer based in Boston, MA. He enjoys problem solving, mentoring junior engineers, and preaching the importance of quality and security. You can find Dave on LinkedIn. In this article we’ll investigate how a particular Wi-Fi connected sensor (in this case a …
Continue reading "Reclaim Your Data: Freeing a Wi-Fi Sensor from the Cloud"
I ran into a situation recently where I wanted to perform a git cherry-pick operation, but I only wanted to pull specific files from the commit. The reasons for this itself aren't so important - I just wanted to make a note for myself and others wrestling with this. The general approach is to use …
Continue reading "How to cherry-pick Specific Files from a Commit"
A recent experience drove this point home for me: insufficient documentation wastes everyone's time. In Adding Delimiters Between String Elements in C++, I described the creation of a "convenience function" that would simplify the use of a logger in a client project. When I made that change in the client's code base, I added the …
Continue reading "Saving 10 Minutes on Documentation Wasted Hours of My Client’s Time"
The implication to the name monorepo is that there exists just one - everything is contained within it. But in Getting Rid of Old Code, I mentioned that 45 repositories would make it into the monorepo. This means 15 repositories did not make the cut. If we're aiming for a monorepo, why were these repositories …
Continue reading "Does Everything Belong in a Monorepo?"
In my post on developing in a monorepo and splitting it up again for distribution, I referenced the Field Atlas entry "Software is a cost, not an asset". Dr. Samek made a comment on that entry, which I will repeat here: I'm so glad to see this point of view. For years we've been told …
Continue reading "Getting Rid of Old Code"
A major roadblock on the way to the goal of developing in a monorepo and distributing to standalone repositories arose with signed commits. This article logs the problems I faced, options for addressing the issue, and my thoughts on the matter. This is still an open investigation, and I am logging my ideas and results. …
Continue reading "Dealing with Signed Commits When Creating and Splitting a Monorepo"
I am ideologically aligned with distributing code in repositories that serve a single purpose. As a software consumer, I think that smaller, single purpose repositories and components are more approachable and easier to use. Of course, every decision comes with its tradeoffs, and this one has caused us significant pain. The overhead in developing and …
Continue reading "An Experiment: Develop in a Monorepo and Distribute to Standalone Repositories"