As I slowly prepare the usual year-in-review post, I find a lot of my reflections pertain to the aggressively debated topic of generative AI reshaping the profession of software engineering.
For most of the year, I found the discourse on this topic aggravating. It was mostly two groups shouting past each other, without engaging with the opposing view in good faith. On one hand, you had the AI hype bros, proclaiming the near-term inevitability of AGI and the impending obsolescence of all knowledge workers. On the other, there were the doomers who regularly dunk on a technology that is still in its infancy.
Thankfully, there are practitioners out there who have taken a more pragmatic and incisive view of the topic. Along with regular updates from Simon Willison's blog, the following posts helped cut through the noise and evolve my thinking as the state of the art has changed dramatically over the year.
On vibe coding
It's hard to believe the term "vibe coding" was coined in Feb 2025, less than a year ago. Many words were spilled as we all wrestled with its emergence, and its fundamental limitations.
- The problem with "vibe coding"
- Augmented Coding: Beyond the Vibes
- AI-assisted coding for teams that can't get away with vibes
- Vibe code is legacy code
On building better tools
I also cannot believe that Claude Code was released in Feb 2025. It's become my default AI assistant. And while the UX is pretty decent, I think we still have a long way to go to reach an optimal harness for human-machine collaboration.
- The Unreasonable Effectiveness of an LLM Agent Loop with Tool Use
- Agentic Coding: The Future of Software Development with Agents (video)
- Enough AI copilots! We need AI HUDs
On where programmers fit
At the start of 2025, it was defensible to think that AI-assisted coding was an over-hyped fad that would fail to affect the day-to-day work of most software engineers. That argument has been smashed to bits after a year of feverish progress. As someone who still wants to be actively involved in making software, the central question I'm left with is: where do I fit, over the long term? And how should I relate to these new magical sidekicks, without abdicating my responsibility and understanding?
- The AI Coding Trap
- The Programmer Identity Crisis
- Claude Code is a Slot Machine
- Beyond the Machine
- Software development in the Time of Strange New Angels
- Your job is to deliver code you have proven to work
- The Rise of Industrial Software
I'm looking forward to revisiting all these posts in a few years' time, to see how baroque and janky the tools we are using in 2025 seem by then. Or perhaps to pine with nostalgia for a time when despite the presence of agents, we still had our agency.