I keep stumbling across the same headline: "Developers at [Company X] no longer write any code. They only do code reviews."
Every time I read one, I have the same reaction: that's either wildly misleading or those teams are in for a painful surprise.
The Car Wash Problem
There's a classic reasoning test that exposes how AI models actually think. Ask GPT about a scenario involving a car wash and it will confidently suggest you walk there on foot. Sonnet has tuned its way around that specific problem—but modify the scenario slightly and it'll happily send you to a tire shop by foot instead. Gemini at least knows you need wheels at the tire shop, and will even help you plan how to carry four tires on the walk over.
This is funny, but it's also the whole story in miniature. These models are incredible at pattern recognition and terrible at reasoning about novel situations. They've been trained to recognize the shape of correct answers without always understanding why those answers are correct.
Software engineering is full of car wash problems. Every real-world codebase is a slightly modified version of something the model has seen before. And "slightly modified" is exactly where things go wrong.
Software Engineering Is a Thinking Craft
From the years when I mostly worked with code by hand, I remember how much deep, focused thinking it required. The kind of analytical work where you hold an entire system in your head, trace data flows across layers, and reason about what happens three steps downstream from a change you're considering.
There was a specific, satisfying exhaustion that came from hours of debugging—the feeling of your brain wringing out every ounce of analytical capacity to find a problem. That wasn't busywork. That was the craft.
When people say "developers don't write code anymore," they're conflating the typing with the thinking. The typing was never the hard part. The thinking was always the hard part. And the thinking hasn't been automated. Not even close.
Where We Actually Are
I use AI coding agents every day. I'm more productive than I've ever been. I'm amazed by how fast the progress is moving. And I'm saying clearly: we are not at the point where all code can solely be written and debugged by LLMs.
What AI does exceptionally well: generate boilerplate, scaffold structure, write tests against existing patterns, produce documentation, handle repetitive transformations across files, and execute well-defined tasks within a well-defined architecture.
What AI still struggles with: novel reasoning about edge cases, understanding why a design decision matters (not just what the decision is), knowing when NOT to build something, and maintaining coherent architecture across a large system over time.
The car wash problem isn't a bug that gets fixed with the next model release. It's a window into how these systems fundamentally work. They're pattern matchers with an extraordinary range, but reasoning is not the same as pattern matching, and software engineering requires both.
Where the Synergy Settles
I think the answer is somewhere that neither the hype cycle nor the skeptics expect. Not "developers become code reviewers." Not "AI is a fancy autocomplete." Something more like:
The engineer does the thinking. The agent does the typing. And the engineer never stops being responsible for both.
That means understanding the code, not just glancing at it. It means being able to explain every design decision, not just the ones you prompted for. It means knowing when the AI produced something that works but is fundamentally wrong for your context—which is the car wash problem applied to your production system.
The progress is genuinely astonishing. But astonishing progress and "done" are very different things.
We're not post-developer. We're mid-transformation. And the developers who thrive will be the ones who kept thinking while the machines typed.