going full ai engineer, not touching code anymore
I don’t write code anymore and I am not missing it.
Not a function. Not a bug fix. Not a feature. From this blog to complex and ambitious work at enum, things that should never break.
And I love it.
The part I thought was the fun part
I’ve been writing code for almost two decades. I was the kid running Linux and trying to create plugins for my Minecraft community. I remember the happiness I felt when things worked after hours of tinkering.
Since then I worked on many projects, from simple websites as a teenager to highly scalable distributed systems at enum and Wunder Software. I optimized my whole workflow around coding. I use a split keyboard, I code in nvim and I touched a lot of programming languages. I love to create things and tinker around.
It turns out I was wrong about which part I actually liked.
The most fun was never in typing. The fun was in the deciding part of coding. What should this system do. How should it behave when things go wrong. What’s the right abstraction. Where does the complexity live. What is a solution for our problem.
After many years into coding I found out that writing the code was the toll I paid to get those decisions into reality. Most of it was muscle memory: the same patterns, the same imports, the same retry loops, the same null checks, the same boilerplate I’d typed ten thousand times. The interesting part was over within seconds of opening the editor. The next six hours were translation.
What I do now
I architect. I review. I push back. I argue. I read diffs carefully and reject the ones that solve the wrong problem. I write specifications and I watch multiple agents implement them. I notice when an agent has a pattern that doesn’t fit. I notice when test coverage is fake. I think about what should be a primitive and what should be composed.
This is the work. The work was always this. The typing was overhead.
The shift hasn’t made me lazier or sloppier - if anything, the opposite. I read more code now than I ever did before, because I’m reading the agent’s output instead of typing on my own. I think harder about the real problems, how we should implement a scalable reconciler pattern for the enum platform, where should data live, what is the real problem we should solve next? I have stronger opinions about the results and tests than ever before, because I’m the one who notices when they’re wrong.
The skill that matters is taste. Whether you can tell when a design is bad. Whether you can spot the load-bearing assumption that’s about to break. Whether you know what to insist on and what to let go. None of that has changed. All of it matters more.
I have a lot more time to focus on learning new things, figuring out how we scale our systems at enum, figuring out enum’s financing. Things that are much more important than seeing myself typing code 10 hours a day.
The honest version
I should say the uncomfortable things.
If AI coding disappeared tomorrow, if I had to go back to writing every line by hand - I think I would quit coding entirely.
Not because I couldn’t. I still can. I’m probably sharper than I was a year ago just from staying current with the tooling. But I wouldn’t want to. It would almost feel like a waste of time. The years of muscle memory have already started fading and I’m not interested in rebuilding them. I have written enough software by hand to know what that feels like, and I am done with it.
This is the part I struggle with when I think about it. Years of identity rests on “I am someone who writes code”. That identity is now contingent on a tool stack that’s three years old and could regress. If it breaks, the identity goes with it, and I’m fine with that.
I think that’s the most honest signal I can give about what I actually valued. The thing I was doing all those years wasn’t writing code. I was making decisions and watching them become real. The agents make that loop shorter. Take the agents away and the loop becomes too long again. I’d rather do something else.
This is not a vibe-coding manifesto
Vibe-coding without judgement is still dangerous. Letting an agent generate code you don’t read, into a system you don’t understand, is how production gets weird in ways you can’t debug at 3am. I’ve seen this. I’ve cleaned it up.
What I’m describing is different. I read every diff. I reject a lot of ideas an agent has. I keep the agent on a short leash for anything load-bearing. The work has shifted from producing code to evaluating code, and evaluating is harder than producing - you have to be right about more things, faster, with less context.
If you don’t have the taste, AI coding makes you worse. If you have the taste, it gives you back the time you were spending on translation.
What comes next
I don’t know how this scales. I don’t know what it means for hiring, for juniors, for the next generation that will never type out a for loop the way I did a thousand times until it became reflex. There are real questions here that I don’t have good answers to.
What I do know is what it feels like for me, right now, after a couple of months with this. The parts of the job I always loved got bigger. The parts I tolerated got smaller. I make more decisions per week than I used to make in a month. I ship more, think more clearly, and care more about what I’m building.
This was always the job. The typing was just the toll.
I’m done paying it.