A developer asks an AI coding assistant to build a feature. Five minutes later, there's a working implementation. The API is there. The database model is there. Tests exist. The frontend is wired up.
A few years ago, getting to this point might have taken a day or more. So it's tempting to ask: If AI can write the code, what happens to the engineer? I think that's the wrong question. The more interesting question is: If producing code becomes dramatically cheaper, what becomes more valuable? And I think the answer is judgment.
Writing the Code Isn't Always the Hard Part
Consider something simple like adding a caching layer. An AI assistant can probably generate one quickly:
The code might even work. But should this function be cached? For how long? What happens when the customer's information changes? Who invalidates the cache? Is stale data acceptable? What happens when the cache is unavailable? Should the cache exist at this layer at all?
Those questions aren't really code-generation problems. They're architecture problems. And AI can produce a technically correct implementation without necessarily knowing whether the implementation belongs in the system.
When Code Becomes Cheap, Code Review Gets Harder
There's another consequence of AI-generated code that I think teams underestimate. AI doesn't just make writing code faster. It makes producing more code easier.
A developer who previously hesitated before adding another abstraction might now ask AI to generate one in seconds. A small feature can suddenly introduce:
- Another utility layer
- Another dependency
- Another interface
- Another configuration option
- Another abstraction
- Another set of tests
Individually, none of these may look terrible. Six months later, you have a system that nobody fully understands. This creates an interesting shift. The bottleneck isn't necessarily: “How quickly can we write this?” It's: “How much code are we willing to own?”
AI Can Implement the Wrong Design Very Efficiently
Imagine you're building a notification system. You ask an AI assistant: “Build a notification service that supports email, SMS, push notifications, retries, templates, and scheduling.”
It can generate a substantial amount of code. But before writing anything, a senior engineer might ask: Do we actually need three notification channels right now? Should scheduling belong to this service? Do we need a new service or can the existing application handle it? Should retries happen in the application or through a queue? What happens when a provider accepts the request but our connection times out? How do we prevent duplicate notifications?
Those decisions determine the shape of the system. Once those decisions are made, AI becomes extremely useful for implementation. That's an important distinction. AI can accelerate execution without replacing the need for deciding what should be executed.
The Cost of Complexity Doesn't Disappear
There's a hidden cost behind every line of production code. Someone has to understand it. Someone has to review it. Someone has to test it. Someone has to monitor it. Someone has to debug it when it fails at 2 AM. Someone has to change it six months later when the requirements are different.
AI reduces the cost of creating code. It doesn't eliminate the cost of owning code. In some cases, it can actually increase it.
Suppose an AI-generated implementation saves a developer four hours today but introduces three unnecessary abstractions that another engineer has to understand for the next two years. The initial productivity gain doesn't tell the whole story.
That's why I care less about how much code an AI system can generate and more about whether the resulting system is simpler, understandable, and maintainable.
Senior Engineers Have Always Done More Than Write Code
I don't think the value of a senior engineer has ever been measured purely by lines of code written. A strong engineer asks questions like: Should we build this at all? Where should this logic live? What happens when this dependency fails? What assumptions are we making? What happens under concurrency? Can we delete this abstraction? What will this system look like two years from now?
Those questions become even more important when implementation becomes cheap. If AI can give you ten possible implementations in a few minutes, the valuable skill isn't generating an eleventh. It's knowing which one, if any, should make it into production.
This Also Changes Code Review
Code review could become more important in AI-heavy engineering environments. Not because engineers need to manually inspect every generated line forever, but because the volume of generated code can increase dramatically.
A useful review isn't simply: “Does this code compile?” It's:
- “Does this belong here?”
- “Does this abstraction make sense?”
- “What happens when this fails?”
- “Are these tests actually testing the right behavior?”
- “What assumptions does this implementation make?”
AI can generate tests too. But generated tests can simply validate the implementation against its own assumptions. You can end up with perfectly passing tests around the wrong design. Someone still needs to understand what the system should do.
The Best Engineers May Write Less Code
There's an irony here. If AI becomes extremely good at implementation, the strongest engineers may actually become more valuable because they prevent unnecessary implementation.
Instead of building a complicated workflow, they simplify it. Instead of adding another service, they reuse an existing one. Instead of introducing an abstraction, they keep the code straightforward. Instead of generating another feature, they ask whether the feature is necessary.
The ability to say “we don't need to build this” becomes increasingly valuable when building things is almost effortless. That's not a new engineering principle. AI just makes it more obvious.
The New Bottleneck Is Judgment
I don't think AI makes senior engineers less important. I think it moves the center of gravity. When generating a function takes seconds, the function itself isn't the scarce resource anymore.
The scarce resources become:
- Context.
- Architecture.
- Judgment.
- Understanding.
- Good decisions.
AI can help you explore implementations, write boilerplate, generate tests, investigate unfamiliar APIs, and accelerate debugging. That's incredibly useful.
But someone still needs to decide what the system should become. And when code becomes cheaper to produce, that decision becomes more valuable. The future isn't about who can write the most code. It's about who knows which code should exist in the first place.

Top comments (0)