Cadabra All articles
Opinion & Analysis

Why Your Junior Devs Are Quietly Waiting for Permission to Exist

Cadabra
Why Your Junior Devs Are Quietly Waiting for Permission to Exist

There's a particular kind of silence that settles over junior developers about three months into a new job. It's not the comfortable quiet of someone who's found their groove. It's the held-breath stillness of a person who has figured out, without anyone explicitly saying so, that breaking things is not okay here.

They've read the room. They've watched a mid-level engineer get visibly frustrated when a PR came back with unexpected regressions. They've sat through a post-mortem that, despite the blameless language, somehow still had a face attached to the incident. They've learned the spell, and they're terrified to mispronounce it.

This is the apprentice's trap — and it's costing your team far more than you realize.

The Codebase as Sacred Text

Some codebases carry an almost mythological weight. Layers of decisions made by engineers who have long since moved on, architectural choices nobody fully remembers the reasoning behind, naming conventions that made sense in 2017. The whole thing hums along, and everyone knows — without saying — that you don't mess with it unless you have to.

For a senior engineer, that codebase is readable. They have enough context to navigate around the landmines. For a junior dev? It might as well be written in a dead language.

The problem isn't complexity. Complex systems are fine; they're learnable. The problem is when the culture around a codebase signals that curiosity is dangerous. When asking "why does this work this way?" gets a sigh instead of an answer. When proposing a refactor, even a small one, is met with "let's not open that can of worms."

Junior engineers are pattern-recognition machines. They will absorb whatever behavioral norms your team radiates, and they'll internalize them fast. If the pattern is don't experiment, don't question, don't break things — that's exactly what they'll do. Or rather, won't do.

The Perfectionism Trap

Here's a thing that happens in a lot of high-performing teams: the bar is set so visibly high that newer engineers stop trying to reach it. They don't submit a PR unless it's polished. They don't ask a question unless they've already spent two hours trying to figure it out alone. They volunteer for the safe tickets — the ones with clear acceptance criteria and no ambiguity — and quietly avoid anything that might expose a gap in their knowledge.

This looks like caution. It looks like professionalism. It is neither.

What it actually is: a junior developer optimizing for not being embarrassed rather than for learning. And you cannot learn fast when you're playing defense.

The irony is that most engineering managers who run perfectionist cultures believe they're raising standards. They're not. They're selecting for engineers who are good at appearing competent rather than engineers who are genuinely developing. Those are very different things, and they compound differently over time.

What Psychological Safety Actually Means in Practice

The phrase "psychological safety" has been so thoroughly absorbed into corporate wellness vocabulary that it's lost most of its meaning. So let's be concrete about what it looks like in an engineering context.

It means a junior developer can push a change, have it fail in staging, and the first response from their lead is a question, not a look. It means post-mortems that actually don't have a face attached — where the conversation stays on systems and process, not on who typed the wrong thing. It means code review comments that explain the why rather than just flagging the what, so the person receiving feedback actually learns something instead of just complying.

It also means senior engineers visibly modeling fallibility. When a staff engineer says "I got this wrong, here's what I learned" in a team meeting, that's not a weakness signal — it's permission. It tells every junior in the room that being wrong is survivable. That's a more powerful onboarding tool than any documentation you'll ever write.

The Experimentation Gradient

One practical move that doesn't require a culture overhaul: create explicit low-stakes spaces for junior engineers to break things on purpose.

This could be a sandbox environment with no real consequences, a dedicated "spike" ticket type that's explicitly exploratory and not expected to ship, or a regular rotation where junior devs get to propose and own a small refactor from start to finish — including the post-mortem if it goes sideways.

The goal is to build what you might call an experimentation gradient — a range of contexts from totally safe to production-critical, so junior engineers can build confidence and judgment progressively rather than going from zero to high-stakes with no ramp.

This isn't coddling. It's calibration. Surgeons don't go from anatomy class to open-heart surgery. Engineers shouldn't go from bootcamp to touching the payment service.

The Compounding Cost of Silence

Here's the business case, if you need one: junior developers who are afraid to experiment don't become senior developers who take initiative. They become mid-level developers who are very good at executing defined tasks and very reluctant to own anything ambiguous.

That's a real cost. Not just in output, but in the kind of institutional knowledge that builds over time when engineers are encouraged to understand systems deeply rather than just work around them carefully.

The teams that grow the fastest aren't the ones with the most senior talent. They're the ones where junior engineers feel safe enough to ask dumb questions, try weird solutions, and occasionally blow something up in a way that teaches everyone something useful.

Magic, after all, isn't about never making mistakes. It's about knowing the craft well enough that mistakes become part of the act.

Start With One Conversation

You don't need a new policy or a culture initiative to start fixing this. You need one manager — maybe you — to pull a junior developer aside and say something like: "I want you to try things and get it wrong sometimes. That's how I'll know you're actually learning."

Then mean it. When they break something, stay curious. When their PR is messy, explain instead of rewrite. When they ask a question you think they should already know the answer to, answer it anyway.

The spell you're trying to cast here isn't complicated. It's just consistency — showing up the same way enough times that your junior engineers stop bracing for impact and start actually building.

That's when the real growth starts.

All Articles

Related Articles

Your Best Engineers Are Leaving — and Your Codebase Is Probably Why

Your Best Engineers Are Leaving — and Your Codebase Is Probably Why

When Nobody Knows How the Trick Works: Escaping the Black Box Codebase

When Nobody Knows How the Trick Works: Escaping the Black Box Codebase

Spellbound by Shortcuts: What Happens When Your Engineers Stop Asking Why

Spellbound by Shortcuts: What Happens When Your Engineers Stop Asking Why