I originally planned to write this post in 2024, during the GPT-4 and Claude 3.5 era. Back then, I titled it "Reflections on a Career in the Age of AI". I figured any opinions I wrote then would likely look foolish by now. We went from the hype of prompt engineering to MCP/tool use, and now to agentic AIs. At this point, any conclusions I draw will probably be outdated in a few months. Still, for entertainment value, I'll do my best not to embarrass myself too much in the future.
Disclaimer: These opinions are purely my own and don't represent my employer or colleagues. This is personal reflection, not professional advice on how to apply AI to your work.
Programmer's point of view
I'd argue that software engineering is currently at the forefront of AI applications. While most people are chatting with OpenAI in their browsers, developers have already had access to agentic tools like GitHub Copilot, Cursor (the cool kid lately), Claude Code, and Codex. I'm fortunate enough to use frontier models daily without worrying much about costs. If you use these tools regularly, your programming workflow looks completely different from before.
The good
Before, giving a large code base to work on, getting familiar with it takes quite a while. Before you get the hang of it, feels more like sailing on a foggy day (how would I know, I never sailed in fog). Tools and documentations are your only friend to navigate your way around. You find yourself looking at sample code, getting confused, maybe stuck on some quirks which are not even related.
With that being said, with LLM tools, you just ask questions, tell it to generate SVGs or explain software architectures, ask it to generate sample code for getting started. What's daunting before now feels more like a small exercise, giving you some "blind" confidence.
Taking it further, you can ask it to pair program with you, brainstorm with LLMs, and generate plans. Scaffolding code, writing test cases, a lot of tedious work can be skipped entirely. Some of which is error-prone for humans anyway—we make stupid mistakes and then spend 2 days debugging them.
Or even further: some top developers from Spotify 1 have stopped writing code completely, only prompting the AI to do it.
Your mileage may vary depending on your personality and how confident you are with AI-generated code. One thing is certain: code is now much cheaper to generate than before. It's almost like writing essays—or even simpler (because LLMs will generate something no matter what). As long as you can type, or even just speak, there will be something generated at the end, regardless of quality.
When generated code doesn't compile, tools like Cursor can iterate—feeding the compiler output back into context, then again, then again…
The same applies to debugging and testing now—pure software has this really smooth feedback loop.
This is indeed a huge step forward from ChatGPT's launch. People stopped asking if it works, why it works, how it works—we all got used to chatting with LLMs. How many people think of AI chatbots as auto-regressive token prediction models (which is what they are) when interacting with them? It's remarkable how quickly we're adapting.
The bad
That said, we might immediately start arguing software is dead. Open source is no longer valid. Every 6 months, AI companies predict that 90-100% of software will be written by AI 2. Will we all lose our jobs? Software written by AI, used by AI—the rest of us will just starve? I suppose we'll see. So far, I'm still writing code.
On the other hand, LLMs are known to hallucinate—a phenomenon some refer to as "stochastic parrots"3. Amazon is now enforcing senior developers to sign off on generated code4. Some of us have doubts about the quality and security of such code. Consequently, we're in the midst of a huge junior hiring freeze5. HR departments worry that no one will be left to fix AI-generated code once senior developers retire.
I'm not going to attempt answering these big questions here—they're way above my pay grade. Instead, my concerns are more practical: dealing with AI-generated code on a daily basis.
I've found that reviewing AI-generated code takes a different kind of effort than writing prompts. When prompting, there's a creative momentum—you describe what you want, iterate, watch it take shape. Reviewing generated code is a different story altogether.
With the current approach many people take—"if it runs, merge it"—reviewing generated code isn't fun at all. There's generally no main thread to follow, no way to see how changes evolved. It becomes a giant brain dump. Inconsistent styles and abstractions. In some cases, the authors didn't even understand the code before submitting the PRs 6.
Reviews become the real bottleneck. If you care about code quality, you'll often find yourself at odds with your team if they want to ship features quickly. There are new demos to prepare, stakeholders to impress, and an ever-accelerating pace of development.
I am not saying that you couldn't write quality code using AI at all. You can use it to help you brainstorm, do PoC and fail fast, find your design flaws early on. You can even generate multiple drafts with agents then learn something from each one of them. But then this is optimizing differently than fast feature delivery and potentially really costly.
The ugly
Now I am attempting to touch a bit on the topic "if software is dead" question, Dario would tell you 100%, since he wins all the way in this scenario. It probably gives many people anxieties in the past a few years because he has to remind you every 6 months about it.
I do not know if this question can be answered at the economic perspective. Maybe it is much cheaper to generate the code (although at the time of writing it does not look like this way), I can only go ask, what is code exactly? This artifact, human thoughts organized into type checked context free grammars. You might be expressing the algorithm, describing an abstract structure. Pieces of nodes that can work together, not just human can understand it, compiler can as well. Eventually with compiler and linker, the machine can understand it as well. So it is a way humans express their ideas, much like writing an essay, a song, a painting.
You maybe asking, it is art then? We should frame it in a picture and auction the code in a hall? On the other end of it, code being compiled becomes libraries, software, applications, where it is useful to assist people finishing some tasks, so in this sense it is different than the traditional sense of art, the economic value of code comes from its usefulness. This is the part where being attacked by AI generation the most.
Still, I do not think "software is dead", just as pure economic sense, you wouldn't want to resolve the same problem then forget about the solutions every time. As a comparison, it maybe equivalent to rediscover how to make fire every time you need it, or rediscover the earth is orbiting the sun every day. We do not do that right? We summarize our knowledge and build on top of it, we might update our knowledge/techniques if there is a better way of doing things but starting from scratch every time would have us stagnate and never advance anymore. So yes, I don't think "software is dead" as long as there are new things to be learned.
Outro
We cannot go back in time, the genie is out of the bottle now this world is forever changed. I missed the old days there is no way you can cheat when writing code, have to do it line by line, right now it takes great will power not to fall into vibe coding mode, which is not good for your mental health and ability to think. On the other hand, the LLMs at its current form (not AGI) is indeed a very powerful tool. Think about this way, vast human knowledge is immediately available to you, no longer need to go through a sea of articles to find the information you need, now you just ask.
Except of course the bills is way too high right now. For the AI to be able to help everyone, not just top elites, local-ai is the only way forward. Not just it is cheaper, but I think also for it to reach true pervasiveness.