The job ain’t quite the same
I’ve had a really fun time using Codex/Claude to build whatever software I want. Early this year, the SaaS-pocalypse drawdown in software stocks was justified by the notion that many of those companies weren’t going to exist because, in the near future, you could ask Claude to make whatever software you wanted. I think the valuation drawdown was probably overblown, but I can’t deny that I’ve spent the last six months asking Codex/Claude for some kind of weird software and watching it make whatever I asked for.
Professionally, though, while I’ve produced more than I could have hoped to without the tools I’m using, I can’t help but feel like it’s all just not quite as satisfying. I’ve achieved a flow state while using these tools to build stuff, and I’ve learned a ton about codebases by asking them how they work, building diagrams, etc., but when it comes to building things, it’s truly just a different feeling.
I’ve done things in two hours what used to take eight, but those two hours are more QA and review than it is the act of creating. And it’s hard to feel like a creation made with an agent is truly my own creation, or to have as much pride about what an agent built as I did when I wrote it.
Some things I miss about the old way of doing things:
- Writing a great API that gets used by others. With agents and other tools, there’s not the same social gratitude or recognition of good taste.
- Writing a great test suite. The agents write tests that are often exhaustive, but not necessarily elegant or designed around testing the core logic.
- Having a feel for a codebase. It’s not that I don’t have any feel for a codebase, but it’s a lot less familiar. Before, I was either writing the code myself or reviewing code written by humans, and it was much easier to connect with the code and feel what it conveyed. Now I’m reviewing 10x the files and it’s just harder to feel the code.
- Writing a good pull request description (or reviewing a good PR). The agents actually kinda suck at this and use overly complex phrasing like “retained an unused reference unnecessarily” instead of “this wasn’t used” etc. but its not as satisfying when everyone uses an agent to review the code too.
I know there are people who would just say, “Don’t use those tools, then. You can just have the agent write things line by line and only accept code you understand.” Unfortunately I just can’t justify that — I’m still doing things much faster, and likely with fewer bugs or issues.
The online discourse is filled with people who are just loving this new way of working. Even extremely talented engineers write about just kicking off agents overnight and reviewing their output in the morning. But the job has changed, the challenges are different, and this kind of work sparks less joy.
I don’t think that software engineers are obsolete in any way, and I think that Jevons paradox may prove that we will actually need more software engineers. Or at least people who can read and understand code. But the kinds of people who would once have wanted to be software engineers because they enjoyed writing code likely won’t be interested in the field in the future, and I think there will be a big shift in the kinds of engineers who want to do this work.
