I haven't written here in a while.
Not because I ran out of opinions.
That would be concerning.
I just got tired of the endless stream of:
- AI will replace developers
- AI will never replace developers
- this model changes everything
- this agent changes everything
- software engineering is dead
- software engineering has never been more important
So I stopped writing for a bit.
AI did not.
And coming back now, one thing feels pretty obvious:
AI got better.
Software didn't.
The models are better.
Coding agents are better.
The amount of code you can generate in an afternoon is honestly ridiculous compared to even a year ago.
And yet somehow we still have:
- overengineered backends
- seven abstractions around a simple database call
- dependency hell
- features nobody asked for
- microservices solving problems that did not exist
- teams proudly shipping complexity at machine speed
So maybe code generation was never the bottleneck.
Maybe we just wanted it to be.
Writing code was never the hardest part
Developers love talking about coding as if typing the implementation is where all the value lives.
I don't think it is.
The hard part has always been deciding:
Should this exist?
Is this actually the right solution?
Are we solving the real problem?
Does this need another layer?
Could this be deleted instead?
AI can give you 600 lines of perfectly respectable-looking code before you've finished your coffee.
That doesn't mean those 600 lines should exist.
And this is where I think AI makes things slightly dangerous.
It removes friction.
Which sounds great.
But friction sometimes saved us from our own terrible ideas.
Before, if you wanted to build an unnecessarily complicated system, you at least had to suffer for it.
Now an agent will enthusiastically help you construct the whole disaster.
AI is extremely good at helping you overengineer
Ask an AI to solve something and it usually wants to be helpful.
Very helpful.
Suspiciously helpful.
You ask for a small feature and suddenly you've got:
- a service layer
- repository pattern
- dependency injection
- validation abstraction
- retry logic
- configuration objects
- three interfaces
- a factory
And everything looks reasonable.
That's the problem.
Bad software rarely starts with something that obviously looks stupid.
It starts with a lot of individually reasonable decisions.
AI can now produce those reasonable decisions much faster than we can regret them.
The better AI gets, the more I want boring software
I wrote before that my 2026 tech stack was boring as hell.
I meant it then.
I mean it even more now.
Because if AI is going to write more of the implementation, I want the surrounding system to be painfully predictable.
Give me:
- boring databases
- boring APIs
- boring frameworks
- boring deployment
- obvious architecture
- code another human can understand without a diagram explaining the diagram
I don't need my stack to be interesting.
I need the product to be interesting.
There is a difference.
And I think we've forgotten that a little.
Code is becoming cheap
This is probably the part that will annoy some people.
I think code itself is becoming less valuable.
Not worthless.
Less valuable.
The ability to produce code is being commoditized incredibly fast.
That does not mean developers are becoming worthless.
It means the valuable part of development is moving somewhere else.
Toward:
- judgment
- architecture
- debugging
- product thinking
- taste
- knowing what to reject
- knowing when the AI is confidently wrong
- knowing when the correct implementation is no implementation
I think "taste" is going to become one of the most important engineering skills.
And it's annoyingly difficult to measure.
You know it when you work with someone who has it.
They remove things.
They simplify.
They ask irritating questions.
They somehow turn your clever 14-step solution into five boring lines.
Those people are going to do very well in an AI-heavy world.
We don't have a code shortage
That's the part I keep coming back to.
We have never really had a shortage of code.
GitHub is not sitting there thinking:
"Please. Somebody. We desperately need more JavaScript."
We have a shortage of good decisions.
AI gives us more output.
More implementations.
More options.
More prototypes.
More code.
Fantastic.
But more is not automatically better.
Sometimes more is just...
more.
And if developers don't get better at filtering what gets generated, we may end up using the most powerful development tools we've ever created to produce the largest pile of mediocre software in history.
Efficiently.
I use AI constantly
This isn't an anti-AI post.
Quite the opposite.
I use AI for coding, debugging, research, writing, exploring ideas and challenging my own solutions.
I don't want to go back.
But I'm less impressed by "AI wrote this entire feature" than I used to be.
Cool.
Was it the right feature?
Is the code maintainable?
Did you understand what it generated?
Did it add complexity you don't need?
Would you have designed it that way yourself?
Those questions matter more to me now.
Maybe the job was never writing code
Maybe that was just the most visible part.
Maybe the job was always making decisions under uncertainty.
Understanding systems.
Making tradeoffs.
Finding the simplest thing that works.
And occasionally telling everyone:
No. We absolutely do not need Kubernetes for this.
AI can generate more software than any of us could ever write manually.
That part is solved.
The interesting question now is whether we're actually getting better at deciding what software deserves to exist.
I'm not convinced we are.
And honestly?
That might be a much bigger problem than AI replacing programmers.
What do you think?
Does AI make developers better engineers — or just faster at producing whatever they were already going to build?

Top comments (2)
Welcome back!!! "microservices solving problems that did not exist"- this line hit hard 🤣
"The value is not in the code" - fine, but the code is the product, unless we give other 'artifacts', like documentation, the same amount of (or more) "love" as the code - but IMO we don't ...
"Maybe the job was never writing code" - but the code is what gets judged in the end ...
I noticed that code written by AI tends to be (not always, but often) more over-engineered than code written by humans ...
So, if it's unavoidable that most of the code will get written by AI (and that probably is unavoidable), then I feel that the human telling the AI "please simplify this over-engineered code" is one of the most important things we can do ...
P.S. I agree that some of the more abstract skills that you mentioned are, in the end, more important than "typing the code" - however:
(a) how are you gonna review whether the code written by AI makes sense if you never learned how to write the code yourself in the first place? You won't know how to properly "read" code if you've never "written" any ...
(b) the more abstract skills that you mentioned aren't developed in a vacuum - one of the best ways to develop them is to actually write, run and debug code yourself (i.e. not outsourcing all of the thinking and implementation to AI) - otherwise we'll forget or "unlearn" the foundations and basics of the "craft" ...
Just a bit of an anti-dote to the sentiment of "writing code doesn't matter anymore" - I still advocate that we keep writing some of the code ourselves ...