76 projects in eight months
From idea to phone
Making software development more productive
How I build with AI agents, what it has come to since March 2026, and an app port that took about an hour from asking to running on my phone.
When you no longer read every line
What I look at when I don't read every line: the borders of the code, its shape, and the test count.
I generate so much code, with so many Claudes, in so many projects, that I don't read every line. If I did we'd never get anywhere. A human can't keep up with the AI when it comes to checking its output, and I don't have a fully formed answer to that yet.
My answer so far has been to black-box the code and look at the things around the outside. I read parts of it, especially around the edges: the inputs, the outputs, the shape of a Docker container, where the secrets are. I like to put code inside a Docker container because then I can see which ports go in and out, and control it on the border. I've looked at the shape of the code and some of the architecture, and I ask a lot of questions about what it's doing.
What goes in and what comes out.
Which ports go in and out of each Docker container.
Credentials and keys, and what can reach them.
The structure and some of the architecture.
What is tested, and a count that is watched.
What the person using it sees and does.
I've put rules in place to stop the AIs doing things I wouldn't want to see from an intern or another developer on a project. No god classes, no huge single files with everything in them, code that is reasonably structured. Quality now checks that for me, so when I do read code I'm reading for judgement and direction rather than for typos.
Adding a test stops the AI deleting a feature. But I also saw AIs decide a test was no longer valid, because that code hadn't come up in their session, and try to delete it because it was blocking their commit. So I had to put things in place to stop that, at several levels. If the number of tests drops for any reason, the push is blocked and the drop gets investigated.
When I've had staff on projects, there were peer reviews from other engineers, and sometimes I'd look at the code myself, depending on what was on my plate. When I use a higher-level language I don't go and look at the assembly it produces. If there's a bug in a library I use, I haven't reviewed that library either. We're all drawing a line somewhere. With AI it has moved, and so has who's doing the work.
I look less and less into the code, and more of that checking is done by tools. My attention goes on the test cases, the interfaces, the shape of the outside of the code and the user experience. I think that's more and more what this work will be.
I still think you need a software developer, and probably always will to some extent. You need somebody there who knows how to deal with the code coming out of the AI, even if they're not reading every line of it.
If you'd like to talk about this, get in touch.
76 projects in eight months
Making software development more productive
How I build with AI agents, what it has come to since March 2026, and an app port that took about an hour from asking to running on my phone.
13 Android apps moved in ten days
From Flutter to Kotlin
Why I used Flutter, what I noticed when the first Kotlin apps were on my phone, and moving 13 Android apps across.
64 databases backed up
Guards that run without me
The checks that run on timers without me: scanning, patching, the test gate, backups and certificates. And what happened when a certificate authority was compromised.
1 text box a day
A product designed for people
A demo journal for people rebuilding their working life with a coach. One text box a day, and a report that only uses what the person wrote.
4 prototypes before the spec
For leasehold plots in Addis Ababa
Four prototypes on the first day, then the spec, the valuation engine and a web app in three languages on the second.
5 to 7 directions to aim for at the end
AI advice you can check
My attempt at helping people who are thinking of changing jobs or career direction, without the AI getting stuck on what they already do.