• Harness Engineering

    Today I heard the term “harness engineering” for the first time: Harness engineering is the practice of building tooling, tests, and automation that let coding agents execute tasks safely and reliably. If code is written more and more by LLMs, the focus seems to be shifting to …

  • AI’s Opportunity: Pacing Control Loops with Development

    What caught my attention in the book Vibe Coding by Gene Kim and Steve Yegge is the idea that, as LLMs and coding agents change how we build software, control loops—tests, reviews, and other signals that tell you whether a change behaves as expected—should be faster and more inte…

  • On Building Reliable Software with LLMs

    This post captures my current thinking on how LLMs are impacting software development, particularly around software quality and engineering discipline. My main observation: most of the best practices we've relied on for years are just as important—maybe even more so—in an LLM-ass…

  • Using Code Coverage as a Check for Test Refactoring

    TLDR: Use code coverage reports to verify that test refactorings haven't accidentally changed what functionality you're testing. Same coverage percentage before and after refactoring gives confidence your tests still cover the same code paths. If we refactor code, tests should co…

  • Test Naming Guidelines

    TLDR: Below are test naming guidelines that help me write consistent, clear test names. This is quick post with the Test Naming Guidelines I have been using to make my test names consistent across multiple projects. I use also these with LLMs when writing tests or refactoring mul…

  • Notes on 🚀 TDD, Where Did It All Go Wrong

    My short notes on 🚀 TDD, Where Did It All Go Wrong. Still a lot of testing wisdom in this talk (re-watched 6 years after publication). Focus on behaviour Behaviour should be your primary focus when writing tests. The need for a new test should arise from new behaviour or requirem…

  • Notes on TDD & DDD From the Ground Up Live Coding

    Some short notes from Chris Simon's Talk TDD & DDD From the Ground Up Live Coding When choosing the right testing level, developers face an important trade-off. Higher-level tests provide better coverage for refactoring, but make it harder to pinpoint the exact location of fa…