DEV Community

Orvi Das
Orvi Das

Posted on • Originally published at robatdasorvi.com

What AI Agents Still Cannot Replace About Senior Developers

Originally published on robatdasorvi.com

I've been building software for over a decade. For the last two years, I've been building with AI agents — using them to scaffold projects, write boilerplate, generate tests, and fill in the tedious parts that used to eat my afternoons. I won't pretend they haven't made me faster. They have, measurably.

But I keep running into a narrative that's starting to bother me. The idea that senior developers are expensive relics. That a junior with the right prompts can now do what took years to learn. That the "10x engineer" is whoever has the best Claude subscription.

It's not true. And I think the people saying it loudest are mostly the ones who've never actually shipped a system at scale and watched it break.

What Does "Replacing" Actually Mean? (Code Generation vs. Engineering Judgment)

When people say AI will replace developers, they usually mean one of two things: AI will write all the code, or AI will make the judgment calls that senior engineers make. The first is already happening, partially. The second is not happening, and I don't think it's close.

There's a useful distinction between coding and software engineering. Coding is producing text that a computer can execute. Software engineering is deciding what to build, how it should behave under pressure, where it can fail safely, and how it will be maintained two years from now by someone who wasn't there for the original decisions. AI is very good at the first thing. It is genuinely limited at the second.

GitHub's own research on Copilot found that developers completed tasks 55% faster with AI assistance — but that study measured individual task completion, not system design, not debugging a production incident at 2am, not the cascading cost of a wrong architectural decision made six months ago.1 Speed on isolated tasks is a real gain. It is not the whole job.

Why Does the Gap Between Generated Code and Production Reality Widen at Scale?

Systems aren't just individual functions—they're interactions between functions, services, and constraints that AI lacks the context to fully understand. That gap is where operational experience becomes invaluable.

I saw this concretely building an automation pipeline. An AI-generated module worked perfectly in testing and then behaved strangely in production. The reason turned out to be a subtle assumption about message ordering that made total sense in a single-threaded test environment and fell apart completely under real async load. The AI could not have caught that without understanding the deployment environment, the infrastructure choices, the team's operational history. A senior engineer who had lived through a similar incident two years earlier caught it in a code review in about four minutes.

That gap — between generation and trust — is where experience lives. The Stack Overflow Developer Survey from 2024 found that while 76% of developers were using or planning to use AI tools, less than half said they trusted AI-generated code enough to deploy it without significant review.2 The trust problem is real, and it maps directly onto the judgment gap.

What Three Things Never Leave the AI Prompt Intact in Production?

Three blind spots define AI's limits: organizational context (why decisions were made in the past), failure mode reasoning (designing for inevitable breakage), and tradeoff reasoning under real constraints. These are invisible until they matter most.

There are a few specific things AI consistently struggles with, and they're all related to context that doesn't live in the code itself.

The first is organizational context. Why is this service split this way? Why is this API structured awkwardly? Usually because of a constraint that existed three years ago, a team that no longer exists, or a business decision made before the current architecture. AI doesn't know any of that. It will suggest refactoring things that can't be refactored, or building things that already exist under a different name in a different repo.

The second is failure mode reasoning. A senior engineer thinks about what happens when the thing breaks before writing the first line. They're designing for the 2am alert, for the customer who finds the edge case, for the junior developer who has to fix it without documentation. AI generates code that works. It doesn't naturally design code that fails gracefully, that degrades predictably, that surfaces the right information when it goes wrong.

The third is tradeoff reasoning under real constraint. I can tell an AI agent "build me a caching layer" and it will build something technically correct. I cannot tell it "build me a caching layer given that we have $200 a month in infrastructure budget, three engineers who are already stretched, and a product manager who doesn't understand eventual consistency." The judgment there — what to cut, what to defer, what to do well enough versus what to do properly — that's senior engineering. That's the irreplaceable part.

How AI Agents Changed a Senior Developer's Role (And Concentration of Judgment)

When AI handles the routine work, judgment calls don't disappear—they become the entire job. My output increased measurably, but the proportion of time I spent on judgment calls went up, not down.

When I leaned into AI agents more aggressively about eighteen months ago, my output increased noticeably. I was shipping more features, writing more tests, spending less time on boilerplate. That was real and I'm not going to undersell it.

But something else happened that I didn't expect. The proportion of my time spent on judgment calls went up, not down. Because the AI was handling the easy parts, the hard parts remained. The parts that required me to sit with a problem, read old code, talk to someone who understood the business, and make a call that couldn't be delegated to a prompt.

In a strange way, AI made the senior engineer role more concentrated. More of my day is now spent doing things that require experience, because the things that don't require experience are being handled automatically. If anything, I feel more like an engineer now than I did when I was spending four hours writing CRUD endpoints.

Is There a Real Threat to Senior Developer Employment?

The threat isn't obsolescence but compression—one senior engineer with good AI tooling now handles work that previously needed two or three people. That shifts the demand curve in specific, measurable ways.

Yes, and I'd be dishonest if I didn't say so. The threat isn't that AI replaces senior developers outright — it's that AI compresses the development cycle in ways that reduce headcount. One senior engineer with good AI tooling can now handle work that previously required two or three people. That has real implications for junior developers trying to accumulate experience, and for team structures that depended on a certain volume of routine work to justify their size.

There's also a subtler risk that concerns me more. If developers over-rely on AI-generated code before they've developed the instincts that come from debugging real systems and fixing things that break in confusing ways, the next generation might produce developers who are technically credentialed but experientially thin. The cognitive shortcuts get replaced before the reasoning capacity underlying them has been built. You end up with people who can direct an AI but can't evaluate what it gives back.

McKinsey's research on generative AI projected enormous productivity gains across knowledge work, but flagged that the highest-value activities remained those requiring "judgment, creativity, and complex communication."3 That's not a coincidence. Those are exactly the things that can't be pattern-matched from training data.

What Actually Makes a Senior Developer Senior?

It's not syntax or architecture knowledge—it's scar tissue from having watched systems fail and learned from the consequences. That accumulated weight of judgment cannot be generated.

It's not syntax. It's not knowing which libraries to use. It's not even knowing how to architect a system in the abstract.

It's the accumulated weight of having watched things go wrong — having made the wrong call and lived with the consequences, having inherited code written by someone who clearly didn't understand the problem they were solving, having been paged at 2am because a system you designed made the wrong tradeoff six months ago. That history shapes how you think before you write a single line.

It's knowing when to push back. When a product requirement is going to create technical debt that costs ten times as much to fix later. When the elegant solution is actually the fragile one. When to slow down instead of just building the thing because building the thing is what everyone is expecting.

None of that is in a prompt. None of it lives in a model's training data. It lives in the scar tissue of someone who has shipped real systems, broken them, and fixed them at inconvenient hours for unglamorous reasons.

AI can write the code. It still cannot replace the engineer who knows why the code matters, when it's wrong, and what to do when it inevitably breaks.

That remains a human problem. For now, and probably for longer than the hype suggests.


  1. GitHub, "Research: Quantifying GitHub Copilot's Impact on Developer Productivity and Happiness," 2022. https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/ 

  2. Stack Overflow Developer Survey 2024. https://survey.stackoverflow.co/2024/ 

  3. McKinsey & Company, "The Economic Potential of Generative AI," June 2023. https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-economic-potential-of-generative-ai 

Top comments (0)