Latest Blog Posts
-
An Argument For Agentic Craftsmanship
AgileTechnicalPractices AgenticCraftsmanship AI Thoughts VibeCodingHanding the coding to an agent takes away three things from the engineer: ownership, understanding, and pushback. This article works through what each loss costs a delivery team, why the workflow frameworks, skill collections, vibe coding tools and software factories built so far do not close the gaps, and what a practice that does would have to look like.
Sep 17, 2026
-
Three Levels of Spec-Driven Development
Thoughts AI SDD CodingAssistantsSpec-driven development now means at least three different things, and the tools that wear the label are quietly very different from one another. I argue that only the lightest of the three, spec-first, is genuinely useful, and that spec-anchored and spec-as-source repeat mistakes we have already made with code comments and model-driven development.
Jun 19, 2026
-
Sideways, Not Up: Why AI Is Not a New Abstraction Layer
Thoughts AI CodingAssistants AbstractionThere is a popular claim that AI coding assistants are the next rung on the ladder of abstraction, sitting above high-level languages just as those languages sat above assembly. I take the strongest version of that argument seriously, then argue it does not hold. A compiler is a deterministic, specified, reproducible abstraction you can stop thinking about. An LLM is none of those things. It does not move us up the ladder so much as sideways into nondeterminism.
Jun 18, 2026
-
Pair Programming, Properly Understood
AgileTechnicalPractices PairProgramming XPA practitioner deep-dive into what the data actually says about pair programming, why most teams "do pair programming" and get few of the benefits, and what the discipline looks like when it is done well.
May 28, 2026
-
Contract Testing in Microservices: Beyond E2E
AgileTechnicalPractices TDD Microservices TestingA practitioner's view of where contract testing belongs in the test pyramid, why it should replace most (but not all) end-to-end tests across a microservice estate, and the organisational discipline most teams underestimate when they adopt it.
Apr 28, 2026
-
Maintaining Code Quality in Modern C# Codebases
dotnet qualityExplore the evolution of code quality tooling in the dotnet ecosystem and get practical best practices for using modern Roslyn based analysers effectively. Use centralised configuration, build enforcement, and incremental adoption help teams maintain consistent, high quality C# codebases as they scale.
Jan 06, 2026
-
Spec-driven Development with Kiro
AgileTechnicalPractices CodingAssistants AI KiroFollowing on from my Getting Started with Kiro blog post, we start investigating the spec-driven development flow with Kiro.
Dec 04, 2025
-
Getting Started With Kiro
AgileTechnicalPractices CodingAssistants AI KiroExploring Kiro, Amazon’s spec-driven AI development tool, by bootstrapping a greenfield project.
Sep 19, 2025
-
Random Forests For Image Classification
ML RandomForest ClassificationAn experiment in using Scikit-Learn’s Random Forest Classifiers for image classification, covering how to use pixel values in classifiers, how we can improve things using HOG, and why, ultimately, CNNs are better for this kind of ML task.
Jul 30, 2025
-
Random Forest Classifiers By Example
ML RandomForest ClassificationAn introduction to Scikit-Learn’s Random Forest Classifiers, covering how they reduce overfitting and sensitivity to noise compared to decision trees, how feature importance reveals which inputs most influence predictions, and why handling missing data is often less critical.
Jul 23, 2025