The AI Engineering Baseline

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

Sidemark: Active Telemetry Comments for C#

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

Seams in Software

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

The Programmers's Guide to Co-Designing with Agents

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

Existential Dread and the End of Programming

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

Context Transference

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

Notes on the Synthesis of Form

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

Coverage is not correctness - but it helps!

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

Lo-Fi Service Discovery in .NET8

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

The Surface Area of Software

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

Notes on the Monorepo Pattern

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