Writing

Engineering principles, architecture trade-offs, and why boring technology usually wins.

Latest writing ↓ Series • Topics • Archive • RSS feed

Start here

Latest writing

2026

  1. Guardrails, Not Fewer Problems

    · 5 min read

    When someone proposed replacing the Kubernetes platform I'd built with something simpler, I didn't argue in meetings. I wrote 60 pages. The argument that won wasn't about features — it was about what happens when things go wrong.

  2. Building Four Emulators Without Writing a Line of Rust

    · 7 min read

    I needed emulators that could script input and capture screenshots on demand. Nothing on the market did that. So I built four of them with AI — in a language I don't know — guided by decades of knowing what correct looks like.

  3. The IC Choice

    · 8 min read

    After twenty years, people assume you either moved into management or failed to. There's a third option: you chose not to, because that's not where you have the most impact.

  4. Building Quizzie: A Real-Time Quiz App in Boring Technology

    · 6 min read

    I needed a quiz app for corporate training. Three npm packages, vanilla JavaScript, and a polling fallback later, it works everywhere - including networks that block modern web features.

  5. Shipping Three Projects (and What Opus 4.5 Made Possible)

    · 5 min read

    An assembly education platform, an iOS card game, and an artillery game I've been trying to build since the early 2000s. Claude finally got them over the line.

  6. Building for the Failures You Can't Control

    · 8 min read

    Early in my career, I built ticketing systems for arts venues. Our platform could be bulletproof - but if the client's backend fell over, the on-sale still failed. That taught me how to build resilience around dependencies I couldn't control.

  7. Six Years After Warning About Microservices

    · 6 min read

    In 2020, I wrote a theoretical warning about microservices. Then I spent three years inside 120 of them. Here's what the theory didn't prepare me for.

  8. Sustainable Software, Revisited

    · 6 min read

    In 2023, I wrote about sustainable software development. I focused on engineering practices. I should have focused on whether the business underneath could survive.

  9. Boring Technology Wins

    · 9 min read

    I've watched companies chase shiny technology for nearly two decades. The pattern is always the same: promises of elegance, delivered complexity, and teams that can't sustain it.

  10. Build for Today, Design for Tomorrow

    · 9 min read

    Most failed systems I've rescued weren't too rigid - they were too flexible. Built for futures that never arrived. I've spent years untangling the results.

  11. Process Theatre Kills Teams

    · 8 min read

    I've worked in PRINCE2 environments where weeks were spent on documents nobody read. I've worked in 'Agile' shops that were just as ceremonial. The best teams I've been on had almost no process at all.

  12. Write It Down or Watch History Repeat

    · 8 min read

    I've spent years rescuing systems with no documentation. Weeks reverse-engineering logic someone could have explained in ten minutes. The cost of not writing things down is paid over and over.

2025

  1. Building a ROM Collection Manager: Where Domain Knowledge Meets Multi-Threaded Rust

    · 7 min read

    The technical challenges were solvable. The harder part was understanding how collectors actually work - the DAT ecosystem, verification workflows, and organisational patterns that had to shape every architectural decision.

  2. Shipping a Rails 8 Book Tracker in a Day (With Claude Code Doing the Heavy Lifting)

    · 6 min read

    AI-assisted development is fast. Surprisingly fast. But 'fast' hides decisions that AI can't make for you - scope, taste, and the stuff that only matters when you're the one who has to use it.

  3. Teaching Assembly Programming (With AI Writing the First Drafts)

    · 5 min read

    I'm building an assembly programming education platform. AI generates the first drafts. Every lesson will be rewritten. The honesty is the point.

  4. Building Shiki Highlight API: How Development Workflow Saved My Syntax Highlighting

    · 7 min read

    From 389 console errors to zero: building a high-performance syntax highlighter with CSS Custom Highlights API, Shiki, and Claude Code—and learning that workflow matters more than I thought.

  5. Why rescue projects fail even when you do everything right

    · 11 min read

    I used to leave snarky comments in code criticizing my coworkers. Years later I came back and realized I'd been wrong. That's when I learned how to actually do rescue work.

  6. Building Rachel Part 2: Themes, Polish, and Production Deployment

    · 7 min read · Part 2 of “Building Rachel”

    From functional card game to production-ready web application: implementing a dynamic theme system, fixing critical bugs, and deploying to the world with bank-grade security.

  7. Building Rachel: A Phoenix LiveView Card Game - Part 1

    · 7 min read · Part 1 of “Building Rachel”

    How I turned a 30-year-old family card game into a modern web application using Phoenix LiveView, complete with AI opponents and real-time multiplayer.

2023

  1. Sustainable Software

    · 3 min read

    Sustainable software development isn't just about clean code or green energy. It's about people, pace, and pragmatic decisions that last.

2020

  1. Microservices, and why they're not always the answer

    · 5 min read

    Microservices were supposed to save us. For most teams, they just moved the pain around — and made everything more complicated in the process.

2019

  1. Lead Developer London 2019

    · 2 min read

    Lead Dev London 2019 brought together 1400+ engineers and leaders for two days of inspiration, practical advice, and community — still my favourite conference.

  2. Containers

    · 6 min read

    Containers like Docker transformed how we build and run software — offering reproducibility, isolation, and a path to modern deployments. Here's why I changed my mind.

2018

  1. Moving on from Guru Systems, joining Divido

    · 1 min read

    After a great run at Guru Systems, I’m heading to Divido — a fintech company where I’ll be building out their consumer lending platform with PHP, Golang, and containers.

  2. Deus Ex

    · 2 min read

    Thoughts on Deus Ex: Mankind Divided, moral choices in cyberpunk, and why sneaking around is more fun than shooting.

  3. Spectrum Next Update

    · 1 min read

    Eighteen months after my last update, I'm still waiting for my Spectrum Next to arrive. Once it does, I'll be diving back into ZX Spectrum development.

2017

  1. Joining Guru Systems

    · 1 min read

    After two years of contracting with Guru Systems via Siftware, I’m joining their team to keep building their platform and expand into new areas.

  2. Getting started with ZX Spectrum Development

    · 10 min read

    Inspired by Revival 2016 and the Spectrum Next Kickstarter, I set out to build a ZX Spectrum dev environment on macOS using Pasmo, Atom, and ZXSP.

  3. Not a Ninja

    · 2 min read

    On choosing proven technologies, writing maintainable code, and avoiding hype like microservices for the sake of it.

2016

  1. Revival Solstice 2016 and the ZX Spectrum Next

    · 8 min read

    Reflections from Revival Solstice 2016, featuring talks by legendary developers and a look at the ZX Spectrum Next prototype.

2015

  1. Joining the team at Siftware

    · 1 min read

    After nearly two years at Impact Applications, I’m making a move to join Siftware, where I’ll be helping modernise legacy PHP systems.

2014

  1. Elite: Dangerous

    · 2 min read

    Why I'm so excited about Elite: Dangerous

  2. Why I like Ruby on Rails

    · 4 min read

    Reflecting on how I discovered Ruby on Rails and why it continues to be my go-to for personal projects.