What AI Can't Replace About Being a Developer
In an era where AI writes great code, what's actually valuable about being a developer?
A Question Over Lunch That Left Me Speechless
A colleague who'd been at the company for two years asked me over lunch recently: "If AI writes code this well, what are we supposed to do?" I was mid-bite and froze. I didn't want to offer empty reassurance -- and honestly, it's a thought that crosses my own mind sometimes.
I spent the next few evenings thinking about it. What do I do that AI genuinely can't?
Let's Be Honest: AI Already Writes Good Code
Simple CRUD, API integration, UI components. AI is already at mid-level developer capability for these tasks. Maybe beyond. No human can match AI's speed at cranking out boilerplate. There was a 2024 prediction that "AI will replace juniors" -- it wasn't exactly right, but the direction was. Juniors didn't disappear; what's expected of them changed.
Defining the Problem Is Still a Human Job
AI excels at "optimize this function." But it can't answer "why are users dropping off from our service?" It can analyze logs, sure, but deciding which data to look at and which hypotheses to form is still on us.
The most valuable thing I did recently wasn't writing code. It was forming and validating the hypothesis that "the low cart-to-checkout conversion rate is due to payment page load time." When we cut the payment page LCP from 3.2s to 1.1s, the conversion rate noticeably improved. (Exact numbers are company confidential.)
Understanding Context Beyond the Code
Ask AI to "refactor this code" and it delivers a clean refactor. But the judgment call that "this code has a payment system migration in two weeks, so touching it now means changing it again -- better to leave it" is something AI can't make. Business context, team dynamics, tech debt priorities -- these things live outside the code. AI is brilliant within the world of code, but it can't see the world outside it.
Talking to People
When a product manager asks "is this feasible?" -- "technically possible" and "if we add this to the current sprint, it pushes back other deadlines, so how about we ship a simplified version first?" are completely different answers. Discussing technical tradeoffs with stakeholders, explaining constraints in language non-developers understand, building consensus within the team -- that's purely human territory.
The 3 AM Phone Call
When an alert fires at 3 AM, rushing in to solve the problem, analyzing the root cause, and putting preventive measures in place -- AI can't do that. AI can suggest "this error might be caused by X," but actually deploying a hotfix to production and taking responsibility for the outcome is on a person.
Responsibility ultimately comes down to trust. "This person built it, so I trust it." AI is a tool, not an entity you trust.
What I Told My Junior
A few days later, I told him: "Writing good code is table stakes now. The people who'll thrive are the ones who can explain why that code needs to exist." I don't know if it was a great answer. Honestly, I'm not fully sure myself. But at least it was more honest than empty reassurance. I think. Probably.