This thread captures the tension I’m navigating as a CTO: AI is changing not just what we build, but who builds it and how teams are structured.
Maya’s junior engineer analogy is compelling, but I want to push on it from a strategic perspective. The analogy works—but it might also reveal why we’re using AI wrong.
The gap between effective and ineffective AI use is expertise
The data Luis referenced is striking: senior engineers ship 2.5x more AI-generated code than juniors. 32% of seniors say more than half their production code comes from AI, compared to just 13% for juniors.
Why? It’s not that seniors have better tools. It’s that they know how to use them.
Effective AI usage requires:
- Understanding what you’re trying to accomplish (not just how to code it)
- Providing detailed, well-scoped prompts
- Recognizing when the output is wrong or incomplete
- Knowing which parts to accept and which to rewrite
- Iterating systematically rather than blindly accepting output
These are all senior-level skills. They’re the skills you develop after thousands of hours writing code, debugging issues, and understanding what makes software work in production.
This creates a profound asymmetry
If only seniors can use AI effectively, then AI doesn’t democratize software development—it amplifies the productivity gap between seniors and everyone else.
The promise was supposed to be that AI would level the playing field. That junior engineers could be as productive as seniors by leveraging AI. But the opposite is happening: seniors who already had the advantage are pulling further ahead.
Keisha’s point about the learning ladder is critical. Juniors can’t use AI well because they lack the pattern recognition. But they can’t develop that pattern recognition if AI is doing the work they’d normally learn from.
It’s a catch-22. And it’s going to get worse before it gets better.
The trust gap tells us we’re not there yet
Maya mentioned that only 33% of developers trust AI results. I think this is actually the most important data point in this entire discussion.
Think about what 33% trust means:
- 67% of developers don’t trust the code they’re generating
- We’re using these tools constantly despite not trusting them
- Every output requires verification by someone with sufficient expertise to spot errors
- The review burden falls on seniors (because juniors don’t have the pattern recognition)
This isn’t a productivity multiplier. This is creating a dependency on senior engineering judgment that’s actually harder to scale than just writing code manually.
If I have to carefully review every line of AI-generated code, and I don’t trust it, then I haven’t offloaded cognitive work—I’ve just changed the shape of it. And reviewing code you didn’t write, with no insight into the reasoning behind it, is often more cognitively demanding than writing it yourself.
Are we creating a two-tier system?
David’s question about measuring the wrong outcomes resonates. But I think there’s a deeper structural issue emerging:
We’re potentially bifurcating software development into two distinct tiers:
- Senior engineers who use AI as a force multiplier - They understand context, can evaluate outputs, and ship code faster
- Everyone else who struggles to use AI effectively - Juniors, mid-level engineers who can’t leverage AI because they lack the expertise to evaluate it
If this bifurcation solidifies, the implications are stark:
- Fewer total engineering jobs (AI + seniors replaces larger teams)
- Much wider compensation gaps (elite seniors become even more valuable)
- Reduced mobility (harder to break into senior tier without the learning ladder)
- Concentration of technical knowledge in smaller groups (organizational fragility)
As a CTO, this worries me. I don’t want an organization where all the knowledge is concentrated in 5-10 senior engineers. That’s a single-point-of-failure risk. When those people leave—and they will, because reviewing AI code all day isn’t fulfilling—I’ve lost institutional knowledge that’s nearly impossible to replace.
AI as junior engineer is the wrong mental model
Here’s where I want to challenge Maya’s analogy. It’s accurate as description, but it might be the wrong frame for thinking about how to use AI.
A junior engineer is someone you invest in because they’ll eventually become a senior engineer. You accept the supervision cost because you’re building capability for the future.
AI doesn’t level up. It’s always going to be a junior engineer. So the economics are totally different.
With a human junior:
- High supervision cost initially
- Decreasing supervision over time
- Eventually becomes independent contributor
- Invests in institutional knowledge
- Becomes a force multiplier as they grow
With AI as “junior engineer”:
- High supervision cost (constant)
- No decrease in supervision over time
- Never becomes independent
- No institutional knowledge
- Productivity gains capped by review bandwidth
That’s not a junior engineer. That’s a tool that requires expert oversight.
What if we’re thinking about this wrong?
Maybe the mistake is trying to use AI like a junior engineer at all. Maybe the value proposition isn’t “AI writes code” but rather:
- AI as a drafting tool: Generates options, not solutions
- AI as a learning accelerator: Helps juniors understand patterns (with senior review)
- AI as a mechanical automation: Refactoring, formatting, boilerplate (low-risk tasks)
- AI as a reference library: Fast answers to “how do I…” questions
If we frame AI this way, the emphasis shifts from “speed” to “augmentation.” We’re not replacing human judgment—we’re supporting it.
The question is: do we need fewer juniors or more seniors?
Keisha’s concern about pulling up the ladder is real. But I think the answer isn’t to preserve junior roles artificially. It’s to rethink how we develop expertise in an AI-enabled world.
Some possibilities:
- Redefine “junior work” - Maybe it’s not writing boilerplate anymore. Maybe it’s learning to evaluate AI output critically.
- Invest in apprenticeship models - Pair juniors with seniors more intensively, even if it’s expensive
- Create deliberate learning paths - Projects specifically designed to build pattern recognition, separate from production work
- Accept a different talent pipeline - Fewer entry points, but different kinds of entry points
None of these are perfect. But I think the status quo—pretending AI doesn’t change the skill distribution we need—is the worst option.
We’re making critical decisions by default
David’s right that we’re measuring the wrong outcomes. Keisha’s right that we’re optimizing for the wrong time horizon.
But I think the deeper issue is: we’re not making intentional choices about how AI changes our teams.
Most organizations are adopting AI tools reactively. Developers start using them. Productivity numbers tick up (or appear to). Leadership celebrates. But nobody’s asking:
- What skills do we actually need in an AI-enabled world?
- How do we develop those skills in new engineers?
- What’s our strategy for maintaining institutional knowledge?
- Are we trading short-term velocity for long-term capability?
If AI really is best suited as a tool that requires senior judgment to use effectively, then we need to be much more intentional about:
- How we recruit and develop senior talent
- How we prevent senior burnout from endless code review
- How we create paths for people to develop senior-level expertise
- Whether the productivity gains are real or just shifting where bottlenecks appear
The junior engineer analogy is useful. But only if we’re honest about what it means: we’re adopting a tool that requires constant expert supervision, never improves, and potentially eliminates the path to developing that expertise in the first place.
That’s not necessarily a bad trade. But it’s a trade we should make consciously, not by accident.