Monday, 8 June 2026 · 14 min read
As global AI adoption has accelerated through the first quarter of 2026, it's become clearer where the baseline bets that you need to make as a modern engineering organisation need to be on the curve of AI adoption in your…
Read more
→ Friday, 29 May 2026 · 4 min read
OpenTelemetry has quietly become table stakes. That's a good thing, but if you've instrumented a real codebase, you know the tax. A method that does one obvious thing slowly fills up with , , , . The bookkeeping of telemetry…
Read more
→ Friday, 20 March 2026 · 5 min read
One of the common themes in the talks I've been doing over the last 5 years is about how we have carelessly over-decomposed and damaged software - and I think this is because of a fundamental conflict between the surface area -…
Read more
→ Wednesday, 11 March 2026 · 18 min read
In this piece I'm going to lay-out my current patterns for working with agents in software development - there's a bunch of preamble about why I think this is important, so if you're just here for the what, feel free to skip to…
Read more
→ Tuesday, 17 February 2026 · 22 min read
Dear diary - the temperature has changed. Everything feels like it's changed really and I'm not 100% sure how to feel about it. I was speaking to my manager last week and he asked me about why the temperature seemed to have…
Read more
→ Friday, 30 May 2025 · 1 min read
One of the hardest refactorings to get right is the balance between extract and inlining of functions. Often people struggle to understand why sometimes when they "do the right thing" and extract a function, their code quality…
Read more
→ Thursday, 29 May 2025 · 12 min read
Before we get started - I'm working on a large paper on the current hype-state of AI, what's actually real, and what's hubris along with the slow steady march of progress that is actually happening. This is an extract from that…
Read more
→ Monday, 6 January 2025 · 6 min read
Form is one of the hardest things to understand in software, mostly because it gets conflated with style and formatting. Style and formatting influence how people read and understand your code - you can bury good design in bad…
Read more
→ Tuesday, 12 November 2024 · 1 min read
"Test coverage is not correctness" and "test coverage is not a quality metric" are two of the lesser understood common phrases you'll here people parrot. I agree with the first, but strongly disagree with the second. I love test…
Read more
→ Tuesday, 21 November 2023 · 6 min read
The vast majority of systems that you build will inevitably call a HTTP API at some point. Whether it's a microservice, a third party API, or a legacy system. Because of this, it's not uncommon to see applications with reams of…
Read more
→ Sunday, 4 December 2022 · 4 min read
The surface area of software is often very complicated to comprehend , and a direct result of that is that we're often subjected to amateur discourse about how teams, or organisations should have worked on a thing, based purely…
Read more
→ Sunday, 4 December 2022 · 4 min read
Monorepos (meaning "a singular repository") is a term coined by Facebook to describe a single repository that contains all the code for a project. It is a pattern that has been used by many large companies, including Google,…
Read more
→