Last week, one of our junior engineers shipped a beautiful feature in record time. Three clicks, perfectly designed component, smooth UX. I was impressed—until it broke production two weeks later in a way she couldn’t diagnose without asking ChatGPT what was wrong. ![]()
This moment crystalized something I’ve been noticing across our team: AI coding assistants made our juniors incredibly fast at building features, but I’m not sure they can actually code anymore.
The Velocity Paradox We’re All Pretending Not to See
Here’s what’s happening on my design systems team: Junior developers are shipping work 3x faster than they did two years ago. Pull requests look clean. Features work in testing. Everything seems great.
Until it doesn’t.
The bugs that emerge 2-3 weeks after launch are different. They’re not obvious edge cases or simple logic errors. They’re architectural problems that reveal a fundamental misunderstanding of how the system works. And when these issues surface, our junior engineers are completely stuck.
Recent research from Anthropic found a 17-point comprehension gap when developers learn with constant AI assistance versus manual coding. The gap is widest in debugging skills—exactly what we’re seeing. (Source)
The Broken Apprenticeship Model
I failed at my startup. I learned more in those 18 months of struggle than in the previous 5 years of success. That’s how learning works in engineering too—the struggle builds the neural pathways that create deep expertise.
But AI coding assistants are optimized to eliminate struggle. That’s literally their value proposition. And in doing so, they’re short-circuiting the apprenticeship model that’s created every senior engineer currently working.
Think about the traditional path:
- Junior writes bad code
- Junior debugs their bad code (this is the learning moment)
- Senior reviews and explains why it’s bad
- Junior internalizes the lesson through painful experience
- Repeat 1,000 times until they become senior
Now it’s:
- Junior asks AI to write code
- Code mostly works
- Junior ships it without understanding why it works
- Bug appears later
- Junior asks AI to fix it
- Repeat forever, never building deep knowledge
The Design Systems Parallel
I’ve seen this exact pattern with no-code tools in design. Designers who learned exclusively on Webflow can build beautiful sites incredibly fast—but they don’t understand CSS, so they can’t debug layout issues or optimize performance. They’ve mastered the tool without mastering the craft.
The difference? Design has lower stakes. A slow website is annoying. A production bug that corrupts user data is catastrophic.
The Hard Questions We Need to Answer
For hiring managers: Are we evaluating candidates on their ability to code, or their ability to prompt AI? Because those are increasingly different skills.
For senior engineers: How do we mentor juniors who see manual debugging as “doing it wrong” when they could just ask ChatGPT?
For companies: Is it worth the short-term velocity boost if we’re not developing the next generation of senior engineers?
For the industry: Where do senior engineers come from in 5 years if everyone learns with AI assistance?
What I’m Trying (With Mixed Results)
On my team, I’ve started being explicit about when to use AI assistance and when to struggle manually:
Use AI for: boilerplate, syntax you don’t use often, exploring new libraries
Don’t use AI for: debugging your own code, understanding architectural patterns, learning core concepts
It’s controversial. Juniors feel like I’m making them “work harder for no reason.” But the ones who stick with it are developing a different quality of understanding.
Your Turn
How are you handling this on your teams? Are you seeing the same patterns?
Are we overthinking this and AI assistance is just the new normal we need to accept? Or are we creating a generation of developers who can ship fast but can’t think deeply about code?
I honestly don’t know the answer. But I do know we need to talk about it before the skill gap becomes impossible to bridge. ![]()