How I build with AI agents
AI coding agents write a lot of my code. I’m responsible for every line of it. This page explains how I work with people to define the problem, design the system and guide the build. The website you’re reading is an example of the AI-assisted process below.
From conversation to system design
- Understand the need.I listen and ask questions to understand what people are trying to achieve, the constraints they face and what success would mean. Those conversations become clear requirements.
- Design the system.I translate the requirements into a system design: how the parts fit together, how information moves between them and which technical choices serve the people using it.
- Make decisions together.I explain technical concepts and tradeoffs in plain language, adapting to the other person’s knowledge and checking that we mean the same thing before moving ahead.
Learning is part of that process. I pay attention to how I absorb new information and where my understanding is incomplete. I bring the same care to explaining a system: the level of detail and the explanation need to fit the person, and I adjust when something isn’t clear. More about working with me.
How a project runs
- 1. Start with questions, not code.Before anything is built, I find out what the project needs: who it’s for, what it has to do and what must never happen. For this site, the agent interviewed me at length about my career, my clients and my goals.
- 2. Write it down.The answers become written specifications the agent works from: a product brief covering who the site is for, what it must prove and what must never be published, and a design system covering colour, type, spacing and dark mode.
- 3. Small steps, each one reviewed.The agent makes one change at a time, tracked in version control, and I review each before we move on. The logo strip on my Work page went through several versions before I was happy with it.
- 4. Check the product, not just the code.Code that compiles isn’t finished. Every change is checked in a real browser, in light and dark mode, and every page is tested at screen widths from 320 to 1,440 pixels for anything that breaks.
- 5. Nothing ships without my go.The agent can plan, build and test, but it can’t publish. I test each change myself, and it’s only committed and pushed when I say so.
- 6. Every claim traced to a source.Agents write fluent copy that can be confidently wrong. Before publishing, every sentence on this site was checked against my own notes, and anything I couldn’t back up was cut or rewritten.
Guardrails I bring to every project
- The Pragmatic Programmer skill. My open-source rules that push an agent to read before it writes, change as little as possible and verify before claiming success. Read what happened when I tested it.
- Private by default. Sensitive information stays out of the code repository, and where it has to, out of the cloud too, using models that run on machines you control.
- Standards as requirements. Accessibility, security and performance are part of the spec from the start, not a clean-up job at the end.
Tools
- Coding agentsClaude Code, OpenAI Codex, Cursor, Gemini CLI, Google Antigravity and Zed
- Local modelsQwen and Gemma, run with oMLX and LM Studio, for work that has to stay private
The tools change quickly. The process doesn’t. For the details of how this site is made, see the colophon.
Want software built this way? Start a conversation.