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.
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.
I was originally using Flutter because of the cross-platform side: one codebase for Linux, Windows and Android. By October 2026 I wasn't convinced it was the best for mobile, to be honest.
The Kotlin apps just feel a bit more fluid. In terms of user experience it's chalk and cheese, and sometimes I felt like I was fighting the interface in the Flutter apps. Everything seemed to work straight out of the box, which impressed me. On some apps the difference in battery use was astounding. On roamPlay there wasn't too much in it.
Control and roamPlay went first, on 24 October. On 27 October I decided all new Android apps would use Kotlin. dKeep, roadTerm and Lore followed, then Career Compass, Transcriptor, listShop and Task Focus, and Pulse on 2 November. Control's Kotlin app was asked for one evening and was on my phone the next morning.
I kept each Flutter app until its functionality had been confirmed in the new Kotlin app. The new apps go through the same e2e testing as everything else, on an emulator or a real phone.
Thirteen Android apps are now Kotlin. Flutter is staying for the Linux and Windows desktop apps for the time being, but I'm having a serious look at Rust. Every new Android app is Kotlin with Jetpack Compose, and the web apps are React.
I think I can do better with apps specific to each platform. I picked cross-platform to have one codebase, and with an AI writing the code I don't need to make that compromise any more.
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.
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.
6 places I look closely
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.
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.