One thing the LLM enthusiasts often talk about, particularly in the software engineering spaces I inhabit, is how they have been able to get back to coding. Do well in the job long enough and the role becomes less about code and more about systems. Most of the work involves quick prototypes, if that, and you’re lucky when you get to push code to production.
This isn’t a post articulating that this is the value we actually bring and that you shouldn’t be worried about the evolution of our careers over the next few years. There are plenty of those out there. Instead I want to talk briefly about my experience of getting back to coding.
Like others I’ve had many ideas of personal projects I’ve wanted to work on over the years but have never had time; or work I’ve actually wanted to do at my job that the company didn’t care to prioritize - refactors, performance improvements and tech debt. When the models started to improve significantly I, again like many others, thought I could move much faster and get all these things done before that I never had the time to do.
Half a year immersingly myself fully into this I’m not sure how I feel about it. I have been able to quickly create apps, get tech debt work started and prototype new things but where is it all now? Those tech debt PRs are scattered everywhere with comments I need to address, testing I need to prioritize and ramp plans I need to convince orgs to take part in. The prototypes are awaiting TDDs, resource planning and roadmapping.
There’s this group of people out there that have been quick to claim that the future of tech is PMs who vibe code into production, or a smaller group of engineers that orchestrate everything but that ignores so much of what running these businesses involve.
Some would argue that this is office politics getting in the way but I disagree wholeheartedly. It has always been the case that review takes more effort than writing code, exponentially moreso these days, and I can’t force all this extra work upon people. I should add that I’m also not one to just vibe code these PRs into existence and I take care to understand the code I’m adding, but it is still work someone else has to do at the end of the day. This applies to all other aspects as well - the meetings I need to run to convince people this redesign is necessary, the TDDs I need evaluated; this inertia, for lack of better word, is the cost of maintaining large, established and complex systems.
On the personal front things have been easier of course since I don’t need to convince anyone to ship code to production. But even with that the novelty has quickly worn off. Do I want to maintain a lot of these apps over time? Wasn’t it easier to fork over $5.99? Is a $100/mo subscription worth this? There are days when I’m genuinely amazed by this technology but on others I take a look at some of the generated code and I’m further convinced that we have a long way to go before I let an LLM take the reigns where there’s impact to other people.
I have an extremely simple SwiftUI app with under 10 pages total that I am the sole user of. Three of those pages have an image component where you can pinch and zoom, select colors from the image and draw a rectangle on for some analysis. My CLAUDE.md begins with explicit instructions to not reinvent the wheel and somehow I have ended up with three variants of this component all exhibiting memory leaks and other subtle issues. Now, in addition to the instructions, I have a instrumentation skill, and a plan for working through the leaks using issue and task tracker plugins so I don’t have to repeat the problem and consume context windows in every session. All for a 10 screen hobby project.
Looking back my experience has very clearly been an illusion of progress. With code generation being nearly free (for now) it’s easy to think you’re actually getting things done when in (my) reality you’re just spinning in place. Don’t get me wrong - obviously LLMs do allow you to output code faster, but it’s very unclear whether I’m moving any faster overall.
Things will change. The tooling is not quite there at the moment, neither is trust and I don’t think we’ve figured out what the acceptable amount of work is to hand off to an agent where meaningful progress is made and you’re not prompting to death. I assume we’ll get there at some point. The genie is out of the bottle now and the C-suites/market have too much invested for this not to work.
Sometime in late 2024 my therapist said that I was addicted to the dopamine hits I got from solving problems, that writing code that fixed a small issue clearly made me want to work non stop, and that I need to figure out healthier boundaries. She switched jobs early last year, right before Claude Code and the LLM craze really took over. Imagine what she would tell me now.