Agentic coding

I have been using AI for coding since Claude 3.0 - so almost two years. In the beginning, my interactions were via the web chat. I would provide some context about the problem and ask for a solution. This worked fairly ok and for most situations it was more effective than using Stackoverflow. I continued to use this approach for a very long time. I shipped Koe: Audio Moments using this approach. I also have an almost-done App for GPX / Fit files analysis. Claude Code came out one year ago, and I completely missed the train. For some reason, I thought I had to have the most expensive tier to use it - I had the 20£/month one. Around November of 2025, I tried Codex for the first time. I was still interacting with it via the Web app, but for the first time I experienced the full feedback loop: the agent was able to build, test and fix its own work. Others had already seen the magic, but this was THE revealing moment for me. I shipped a massive app using Python, React and Machine Learning (with Reinforcement Learning) that would simulate Lorcana Games (InkStats). In one month and a half it pushed almost 2k commits, more than 1.1k unit tests and roughly 250k lines of code. I had paying customers. All this running on Hetzner. I closed it a few weeks ago, because it wasn’t meeting the goals I had set. A failure in a way, but I learned a lot - despite writing almost zero lines of code myself.

I have worked on Dash since 2020. While I was still fixing bugs now and then, I had mostly stopped developing it. I am still using it on a daily basis, but I saw it as a finished product. A sticking point for me, since I created it, was that I wasn’t able to pay for its costs. With Apple’s developer program, Apple’s % cut, servers (for push notifications), this always left me in the red, or just above the water line. What really made me continue was that I built Dash first and foremost for myself.

After finishing InkStats, I decided to improve Dash with Codex. I shipped more features in 2 months, than I did in the previous 5 years. I now have a steady stream of revenue, due to subscriptions. Dash finally pays for itself. I now receive emails with feedback on a weekly basis. It feels like a real product.

There’s a notion that we are in a place where AI does everything for you. And to a degree, it certainly does remove the boring parts out of the way. I want my code to be tested against strong assertions. I want to feel that when I push a version to the AppStore, that the app won’t be riddled with bugs. But do I want to be the one writing those tests? Not really, no. The idea that Software Engineers will disappear is half right. The role is being pushed one layer above - the same way we went from Assembly to modern programming languages. We are just working one level above. Agents, as they improve, become better at producing code and with less tendency to hallucinate. This makes the tool more forgiving in less competent hands. A good AGENTS.MD alongside a good Skills set, makes a massive difference. And when I read people getting poor results with these tools, I wonder about the operator’s skill to steer the agents.1 I was in the same camp as most of them 6 months ago: AI is a bubble, this is all hype. I am fairly confident this is no longer the case.

Do I think a non-technical person could have done all the work I have done? To a degree, yes. But I did hit several roadblocks, both on Dash and InkStats, that a non-technical would likely not know what to do next. In particular with Dash, I had to guide the agent multiple times when it wanted to go down the road with UIKit. Or it tried to be clever with SwiftCharts. Agents have a tendency to circumvent dead ends with more code. The operator’s skill to think through first principles, again, does make a difference.

Given how much improvements I am seeing with Agentic coding in the last few months, I am excited about where we will be by the end of 2026.


  1. I am not claiming I am good at it. I can certainly say it’s a skill you develop the more you do it - just like anything else ↩︎