Yesterday I finally got around to posting Minimum Specs, Maximum Vibes which was a draft I had kicking around for a while but hadn't finished. It was about my side project experiment of seeing how far I could get with coding agents on auto. I got a lot further than I thought, and a lot further than I could get just a few months ago. Then, later that evening a friend pointed out Dex…
Update — 2026-07-24 There's a follow-up to this post: Software Factories and Vibes , a response to Dex Horthy's Why Software Factories Fail and some thoughts on what this experiment proves and what it doesn't. NB: This post went out of date before I got round to publishing it. I built this on Opus 4.8. By the time I came back to finish this post I'd moved my planning and…
I built a fake CRM to parody modern UX dark patterns. There's a useful app in here somewhere, but the reason you came here is lost in a sea of distractions... View full size Dark patterns A 2022 European Commission study found that 97% of the most popular websites and apps used by EU consumers deploy at least one dark pattern. The Digital Fairness Act is the response, due as a legislative…
You've probably seen the famous skateboard-to-car agile development meme. This one where the "wrong" way shows a car being built piece by piece (wheel, chassis, body, car), and the "right" way shows a skateboard, then a scooter, then a bike, then a motorcycle, then a car... I saw Tim Ottinger post about this on LinkedIn recently. His point was that most people see this as a delivery plan…
The marketing around "self-healing software" suggests that with AI your systems can fix themselves. I don't have direct experience with self-healing systems yet, but it's a topic I keep running into, so I spent some time looking into what practitioners and researchers are actually saying. Three separate conversations The term "self-healing" covers three distinct tracks that vendors blur…
At the latest Claude Code Anonymous meetup in Brighton, someone gave a lightning talk on prompts for "humanising" AI writing. They showed long skill files and detailed style guides, then they showed that you can get most of the same effect with a single line: "Use Orwell's 6 rules for writing." The model absorbed Politics and the English Language during pretraining, along with decades of…
When building integrations, you have to deal with the difficulties of working with distributed systems. Fetching from APIs that may sometimes be unavailable, transitive failures, or rate limiting issues. Integrations are usually made up of multiple steps, and each step can fail. Each step might have side effects. And if the process crashes halfway through, you need some way to pick up where you…
I've been hosting projects on AWS and GCP for years. But for side projects the cost and operational overhead is a bit much. I started moving things to cheap VPS hosts. A Hetzner box, a few scripts, docker compose up . It works. But the scripts accumulate. The compose file grows. Every deploy is a slightly different sequence of commands you half-remember. I looked at the tools that exist for…
Starting point I want to build an LLM from scratch in Rust, following Sebastian Raschka's Build a Large Language Model (From Scratch) but reimplementing everything in Rust with Candle. This exercise is about learning how an LLM works. I also wanted to map the intellectual lineage: where did each piece of the modern transformer come from, and what's the thread that connects them? The deep…
I was a senior developer who resisted AI coding. I was convinced that no matter how much AI claimed to improve, it could never replace a human with a love of the craft and a pursuit of great code. I have decades of experience writing code. I've shipped production systems and understand what it takes to keep them running. I've been through the hype cycles, the framework wars, the…
The core problem: context engineering Most developers now use AI tools daily, and a growing share of committed code is AI-assisted. The bottleneck has shifted. It's no longer about whether AI can write code. It's about whether AI has the right context to write the correct code. When agents hallucinate APIs, use deprecated patterns, or ignore project conventions, the root cause is almost…
Update — 2026-07-24 This post is dated. Update: Software Factories and Vibes . Opus 4.8, and now Fable with auto mode and dynamic workflows, let agents run unattended for far longer than when I wrote this. The leverage argument below still holds, but where I draw the line has moved again. A couple of weeks ago I wrote Code I'll Never Read , arguing that humans might not be the right reviewers…
I've seen claims that being polite to Claude improves the performance. However, at a meet-up recently, someone told me that urging it along, giving it compliments and encouragement, pushes it to perform even better. I was sceptical. But I've also seen enough surprising LLM behaviour that I don't trust my intuitions about what does and doesn't matter. I wanted to put it to the…
Starting point There's a long tradition of learning by building --- from Papert's constructionism to modern project-based curricula. But AI tools are changing the dynamic. When you can generate working code instantly, what happens to the learning process? Threads to pull Constructionism --- Seymour Papert's idea that learning happens best when you're constructing something…
Update — 2026-07-24 I ended this post admitting I still wasn't comfortable not reading the code. Opus 4.8, and now Fable with auto mode and dynamic workflows, changed that faster than I expected: I've since built a working iOS app in a language I've never written, without reading a line of it. The experiment is written up in Minimum Specs, Maximum Vibes , and there's a…
Last week I read AI still doesn't work very well, businesses are faking it, and a reckoning is coming in The Register. The picture it paints is bleak: enterprise AI is mostly failing, the metrics are gamed, and the bill is coming due. I've been trying to reconcile that with my own experience, because my experience has been the opposite. AI coding agents have been a massive performance…
I recently built an internal data tool my team needed. Six months ago it wouldn't have been viable. It would have just been manual work. Nobody would have dedicated engineering time to automate this task before. But with Claude Code and Opus 4.6, I built a production-ready tool in days that replaced all of that manual work. AI changed the economics enough to make it worth doing. Is it worth…
I've already written about context engineering as the core discipline of building AI systems. I've been experimenting with my own AI tools for coding, research, and automation. I'm noticing that tool calling starts to consume more and more context, and so we need strategies to scale tool calling. My stack is Rust-based, using Rig for LLM abstraction, Restate for durable execution,…
I recently wrote about how I work with AI coding agents and about code review in AI-augmented development . I meant every word of both. But parts of them are already not quite where my thinking is now. This is not a retraction. The ground keeps moving under our feet. The only irresponsible position right now is certainty. We have to be open to changing our minds as the AI models and harnesses…
Years of running production systems give you something that's not in the code. You learn the real-world usage patterns, the failures that only show up under load, the degradation behaviour that creeps in over months. You learn which alerts actually matter and which are noise. That knowledge is earned incrementally. Through building, observing, failing, and iterating. It lives in people, not…
Update — 2026-07-24 This post is dated. Opus 4.8, and now Fable with auto mode and dynamic workflows, mean agents run unattended for far longer, and my process is changing with them. The core principle below still holds, but the mechanics have moved on. Software Factories and Vibes follows up on what this means. Update — 2026-05-13 Plans turned out to not be the leverage I'd hoped. Some…
These days I spend much more of my development time reviewing code than writing it myself. I've also found myself thinking more deeply about what to build, and how to specify it, before anything gets generated. I wrote recently about thinking in plans, not code and how the leverage has shifted upstream to research and planning. This post is about the other side: what happens downstream, when…
Update — 2026-03-04 I outlined this post a while ago but never finished it. I'm posting it now because I think it's interesting background thinking to my operational debt post. If an AI-augmented engineer can build an app in a weekend, what happens to SaaS? I'm a tech lead for data and integrations at a SaaS company. But I also run Zero Waste Tickets , a small side project, with…
Yes, the irony of using a bot to build bot protection is not lost on me. But the experience taught me something. Development hasn't gotten easier with AI. It's gotten more intense. The Postmark Incident Zero Waste Tickets is a side project of mine. Real users, real traffic, nothing massive. The login flow is passwordless. You enter your email address and the app sends you a code. No…
Update — 2026-03-01 This post has been superseded by How I Work with AI Coding Agents . I've kept it here rather than archiving it because I think it's interesting to show how my thinking changed as I developed my working processes. If you're just after my latest compilation of how I'm working, you might want to check that more recent post instead. In my previous post on AI…
Update — 2026-03-01 This post has been superseded by How I Work with AI Coding Agents . I've kept it here rather than archiving it because I think it's interesting to show how my thinking changed as I developed my working processes. If you're just after my latest compilation of how I'm working, you might want to check that more recent post instead. Thinking in Code The thing I…
Warning This post is a little different to my usual technical blog posts. I asked Claude to review this post, and this is what it said: "It doesn't survive close scrutiny as an argument because it relies on loaded definitions, unexamined metaphysics, and a narrative so tidy it papers over the messiness of actual history and biology." You have been warned. This isn't my usual territory. I…
Update — 2026-03-01 This post has been superseded by How I Work with AI Coding Agents . I've kept it here rather than archiving it because I think it's interesting to show how my thinking changed as I developed my working processes. If you're just after my latest compilation of how I'm working, you might want to check that more recent post instead. Last year I was using AI Chat…
Update — 2026-07-23 Moltbot was renamed OpenClaw within days of this post going out, which tells you something about the pace of all this. The security findings, stats, and implementation details below describe the project as it stood in January 2026. I've left them as a record of that moment. My opinions have changed, of course. Jan 2026 was a long time ago in terms of AI developments. But…
Update — 2026-02-07 Re-phrased some parts to be clearer and to add the important Nolan Lawson insight " We Mourn Our Craft ". "It Is Difficult to Get a Man to Understand Something When His Salary Depends Upon His Not Understanding It" -- Upton Sinclair "When the facts change, I change my mind." -- John Maynard Keynes Last year I was using AI chat and Copilot but hadn't gone all in on coding…
Over the past few months, in my spare time, I've been working on my side-project, Zero Waste Tickets , where I make heavy use of HTMX, server-rendered HTML, and a few bits of vanilla JavaScript for interactions. I'm able to do more with less. Much more than you might expect for a single dev working in my spare time. And it's fast to load, and I can reason about the whole codebase in…
I'm bringing the blog back. The world I've spent my career in is changing fast, and I've been doing a lot of thinking about where things are heading. I want a place to work through those ideas properly, not in throwaway social media posts but in something I own and can build on. I've also been digging through my archives, recovering old posts from previous incarnations of this…