Do we still need programmers?
"Is AI coding moving too fast? Sonnet 3.7? Claude Code? Is 'vibe coding' already easier and more impactful than regular way of writing code?"
A good friend asked me about this.
…“Feels like opening iterative pull requests, waiting 10 mins for CI, and deploying a +10/-7 PR is already outdated”
So are programmers already out of a job? Are the best practices for shipping software such as continuous integration and pull request reviews already irrelevant?
Here’s my 2 cents as of March 2025.
Day-to-day impact of LLMs on software engineering
In the last 2 years alone, software engineering changed more drastically than in the prior 20 years.
Starting with the obvious, Claude Sonnet 3.7 is insanely good for 1. debugging errors, and 2. prototyping initial concepts. Stack Overflow & internet forums are dead. Your marketer is no longer hiring $5 fiverr gigs, they create the scripts they need themselves with Claude.
Devin is a great concept, but the error rate is still too high for most tasks. This is where we’re going though — you simply tag your virtual colleague in Slack and wait for them to open a pull request.
Cursor’s CMD+K with Claude Sonnet is the single most important practical change in day-to-day engineering workflows since GPT-3.
If you’re a full-stack engineer and you haven’t incorporated CMD+K into your workflow you will soon become irrelevant. (It’s fascinating that existing IDEs like JetBrains are struggling to keep up!)
Starting a new project? Cursor’s composer mode is useful, too. Although it becomes impractical as you cross 5-10k lines of code and the dependencies become too complex.
Where we’re going
SWE Agents by GitHub will likely shake things up next thanks to their tight integration with GitHub pull requests & having the entire codebase.
New models come with very large context windows. Gemini Flash 2.0’s 1 million context window means that entire small codebases can be now completely included in a single prompt, leading to higher quality answers & insights.
Needs of engineering teams are different to cool demos
Most ‘AI coding’ demos focus on 1. single page visual demos, and are 2. built from scratch by the model. And 3. models make many mistakes, so you need multiple attempts of tweaking your prompt before it does what you need.
Software engineering teams deal, on the other hand, with:
numerous internal microservices and many repositories
millions of lines of existing code
they optimize for not breaking things when adding new features
This is why the Devin experience of simply asking an agent to implement a feature in a complex existing codebase is still just a dream today. And why CMD+K in Cursor remains the key game-changer for existing software engineering teams.
There’s one other notable use-case for engineering teams: chatting with code. Imagine you need to integrate with a poorly documented Go library although you never worked with Go. You can ask Cursor Chat to explain the parts of the code base relevant to you: e.g. ask about what’s the structure of the API payload the service expects. This works exceptionally well.
I think there are many existing workflows still waiting to be disrupted by LLMs: automations for triaging bugs and feature requests, code review assistants, UI copywriting assistants, UI convention checkers, QA testing, and workflows for resolving infrastructure incidents faster, to name a few. We’re working on some of these at Better Stack, so if this sounds like an interesting challenge, join us!
So what makes human engineers relevant today?
Experience + Low error rate.
We still need full-stack engineers with 1. a lot of experience, and 2. low error rate.
Experience is both the soft intuition built from years of building and fixing complex systems as well as hard knowledge of the existing systems.
By “error rate” I mean the guard rails an engineer needs around them to be able to ship production-ready features.
Does your company have an army of manual QA testers? Is every pull request introducing a new feature followed by several hotfixes? Both signify an environment with a high tolerance for errors. Devin is coming for your job soon.
“Full-stack engineer” is the main software engineering role still relevant today. If you perceive yourself as just a “Ruby engineer” or just a “JavaScript engineer” then play with Claude, Cursor & Devin and reconsider.
Thanks for reading! Follow me on Twitter & subscribe below for future posts.