Field notes on building software for the way minds actually work: tired, distractible, ordinary, and now partly machine.
2 August 2026
Every behaviour you ship, even the ones you never meant to promise, becomes somebody's load-bearing wall. You do not get to just knock it down.
retiring
28 July 2026
A retrospective that ends in a document has produced a story. The only one worth the hour is the one that produces something that re-runs without you.
retrospective
16 July 2026
An unreproducible report is a rumour with a timestamp. Triage is the work of turning the rumour into something you can actually rank.
triage investigate
12 July 2026
Put six reviewers on one enormous change and you do not get six reviews. You get none, and a queue of people each quietly certain someone else did the reading.
reviewing
5 July 2026
You do not have to understand a bug to find it. You have to be willing to cut the haystack in half, and then in half again, until one straw is left.
investigate
2 July 2026
Stop asking who made the mistake. Start asking what the system let them make.
retrospective
28 June 2026
The bug your angriest customer is emailing about and the bug wrecking the most lives are almost never the same bug.
triage operating
26 June 2026
You can build every house on the street to code and still hand someone a neighbourhood that seizes the first time everyone leaves at once.
operating planning
18 June 2026
The job of a code review was never to find your bugs. It is to drag what one person understood into the open, before it sets like concrete.
reviewing
16 June 2026
One lock is not security. It is a single point of failure you have not yet watched fail.
operating reviewing retrospective
10 June 2026
Your test suite is a museum of bugs you have already killed. The live ones are hiding in the inputs you were too sensible to type.
verify implementing
7 June 2026
A good design makes the right thing the easy thing and the dangerous thing take visible effort, so a tired person falls into doing it right.
implementing reviewing
28 May 2026
You do not have a failover. You have a failover you have never triggered, which is a different thing with the same name.
verify operating
24 May 2026
Every shiny new database is a promise to learn, at three in the morning, exactly how it breaks.
planning operating
17 May 2026
The rule that let everything on the internet talk to everything is the same rule that means nothing can ever be cleaned up.
implementing reviewing planning
15 May 2026
The most reliable systems in the world stopped trying not to fall over, and got very good at standing back up.
operating implementing
10 May 2026
Past a certain point a system does not slow down, it falls off a cliff, and the only kindness left is to refuse work you cannot finish.
implementing operating
7 May 2026
Two machines, two clocks, and a question about order that physics says you are not allowed to ask.
implementing investigate
23 April 2026
Your most dangerous attacker never gets a key. They find someone who already has one and ask nicely.
implementing reviewing operating
19 April 2026
Everybody has a backup. Almost nobody has a restore. The difference is the whole story.
verify operating
11 April 2026
The ugly working system you want to delete is a scar map of every wound it has survived, and you are about to throw the map away.
planning operating retiring
9 April 2026
Two functions can match to the last character and still be two different things.
implementing reviewing retiring
4 April 2026
Types and tests guard the ground inside the compiler; past its edge, the only thing between you and disaster is a process someone bothered to build.
operating planning
29 March 2026
Every value that crosses into your code arrives wearing a disguise, and the dangerous ones are dressed impeccably.
implementing reviewing triage
26 March 2026
Every resource you open is a promise to close it, and the bill for a broken promise always arrives at the worst possible hour.
implementing reviewing operating
15 March 2026
Every fact you store twice is a promise to keep two things equal forever, and you will not keep it.
implementing planning
11 March 2026
The most honest test of a codebase is how far you have to look to be sure a small change is safe.
implementing reviewing
4 March 2026
Every dashboard is green. Every alert is quiet. And something has been rotting underneath for six weeks.
implementing operating retrospective
2 March 2026
The hardest failures are the ones that heal the moment you look at them, because they were never really about the code. They were about time.
investigate implementing
25 February 2026
Every other material gets lighter when you take something away. Software is the one that fights you for the privilege.
retiring planning
16 February 2026
Most bugs are not things you typed wrong. They are things the code let you type at all.
implementing retrospective
13 February 2026
Everything you build will fail one day. The only thing you get to decide in advance is how far the wreckage spreads.
operating reviewing triage
7 February 2026
Every program quietly reaches outside itself for things nobody wrote down, and those things move the moment you stop watching.
implementing verify
3 February 2026
The mind that builds software is far smaller than the software it builds, and almost everything good in engineering is a way of living with that gap.
cross-cutting