Skip to main content
  1. Insights/

Why senior developers fail to communicate their expertise

·9 mins
Vin Patel
Author
Vin Patel

The Developers Who Know the Most Explain It Worst

The developers who know the most are often the ones who explain it worst. I’ve watched engineers with 20 years of battle scars get talked over in meetings by juniors with a Medium article and a rehearsed pitch. The problem isn’t knowledge. It’s that expertise and communication are two completely different skills — and nobody tells you that when you’re grinding LeetCode at 2am.

Here’s the uncomfortable truth: senior developers don’t fail because they lack soft skills. They fail because depth creates its own blindness. The more you truly understand a system, the harder it becomes to explain it to someone who doesn’t share your mental model. This isn’t a character flaw. It’s neurologically documented, psychologically measurable, and completely fixable — if you’re willing to admit it’s happening to you.

I’ve been building software for 25+ years. I still catch myself doing this. Let’s break it down.


The Expertise Paradox Nobody Talks About

There’s a cognitive bias called the Curse of Knowledge. It was first named by economists Colin Camerer, George Loewenstein, and Martin Weber in a 1989 Journal of Political Economy study. The core finding: once you deeply understand something, you literally cannot reconstruct the mental state of not knowing it.

You can’t un-see the pattern. You can’t un-know the tradeoff. Your brain has permanently overwritten that earlier, simpler model of the world.

The most vivid demonstration of this is Elizabeth Newton’s 1990 Stanford “tapping experiment.” Participants tapped out the rhythm of a well-known song. Tappers predicted 50% of listeners would correctly identify it. The actual success rate? 2.5%. The tappers could hear the melody in their heads while tapping. The listeners heard random knocking. Same physical signal. Completely different cognitive experience.

That’s a senior developer in a sprint planning meeting.

Technical knowledge compounds this problem harder than almost any other profession. A 20-year developer doesn’t just know more than a 5-year developer — they operate in a fundamentally different cognitive space. The vocabulary alone creates a wall. When a senior dev says “this introduces tight coupling that’ll hurt observability downstream,” a non-technical stakeholder hears white noise. The words are English. The meaning is inaccessible without a shared mental model that took years to build.

I built a Rust-based CLI tool last year as a personal project. When I explained the architecture to a friend who codes Python casually, I watched his eyes glaze over in real time. I was three abstraction layers above where he was standing. I didn’t notice until it was too late — I was too busy explaining the thing to notice he’d already left the conversation mentally.

The data backs this up. A Grammarly/Harris Poll estimated poor communication costs U.S. businesses $1.2 trillion annually. In engineering specifically, the pattern I keep seeing is a gap between how developers rate their technical skill and how they rate their ability to explain it — high confidence in the former, far less in the latter.

That gap — between self-assessed technical confidence and communication confidence — is where careers stall.


The Three Communication Failure Modes

Illustration

After 25 years of building, reading post-mortems, watching tech talks, and quietly noticing what goes wrong in technical discussions, I’ve seen senior developers fail in exactly three ways. I call it the TAD model — Too Technical, Too Assumptive, Too Defensive. Every communication breakdown I’ve witnessed maps to one of these three.

TAD-1: Too Technical. This is the firehose problem. Ask a senior developer “should we use Redis here?” and you’ll get a 20-minute treatise on cache invalidation strategies, CAP theorem, consistency models, and three alternative tools — when the person asking just needed a yes or a no with one sentence of context. Senior devs answer the question and everything that question implies. The listener needed the ground floor. They got the whole building.

TAD-2: Too Assumptive. Assumed context is invisible to the person assuming it. Senior devs carry massive internal maps — years of architectural decisions, failed experiments, constraint histories, political context. They reference this map constantly without realizing others don’t have a copy. Watch for the tell: sentences that begin with “obviously” or “as you know.” Those phrases are almost always red flags for assumed context that doesn’t actually exist in the room.

I catch myself in TAD-2 constantly. I’ll be explaining a database design decision I made for a personal project — referencing constraints I was working under as if they’re common knowledge. They’re not. They’re stored in my head from a context that exists nowhere else. Writing build logs and decision journals has been the single most effective fix I’ve found.

TAD-3: Too Defensive. This one does the most damage. Deep expertise becomes identity for long-tenure developers. A challenge to a technical decision starts to feel like a personal attack. The result: communication shuts down instead of opening up. The observable behavior? Resorting to credentials instead of explanation. “I’ve been doing this for 20 years” ends a conversation rather than advancing it. Tenure is not an argument. Experience has to be translated into reasoning that others can follow — or it’s just noise with authority attached.


Why Technical Depth Creates Communication Debt

Every year of experience adds context. And context, paradoxically, is the enemy of clarity.

graph TD
    A["Year 1: Syntax & Features\n(Concrete, visible outputs)"] --> B["Year 3: Patterns & Frameworks\n(Reusable structures)"]
    B --> C["Year 7: System Design & Tradeoffs\n(Architecture, constraints)"]
    C --> D["Year 15: Org Context + Historical Decisions\n(Why things are the way they are)"]
    D --> E["Year 25: Intuitive Pattern Recognition\n(Hard to articulate, automatic)"]
    E --> F["⚠️ Communication Gap"]
    G["Listener enters here\n(Year 1–3 mental model)"] --> F
    F --> H["Expertise becomes invisible\nto everyone but you"]

A 2-year developer and a 20-year developer aren’t at different skill levels on the same scale. They’re operating with fundamentally different ontologies of what software is. The senior dev’s mental model includes historical context, failed experiments, organizational constraints, technical debt rationale, and pattern evolution across multiple technology generations. None of that is visible to anyone else. I call it accumulated context debt — the senior knows why something is built the way it is, but that “why” only exists in their head.

Alfred Korzybski’s abstraction ladder from 1933 — yes, general semantics, still the most useful framework I’ve encountered — explains this precisely. Senior devs naturally operate at the top of the ladder: principles, patterns, tradeoffs. Most stakeholders and junior collaborators operate in the middle or bottom: concrete features, specific lines of code, visible output. Communication fails when the speaker doesn’t consciously climb down the ladder to meet the listener where they actually are.

This is where tribal knowledge comes from — one of the most common friction points teams report. That tribal knowledge — the stuff that lives only in the heads of long-tenure contributors — is accumulated context debt made structural. It’s not just a communication problem. It eventually becomes a single point of failure.


The Solutions Most Articles Get Wrong

Most “communicate better” advic

Illustration
e for developers is condescending. “Use simpler words.” “Draw more diagrams.” “Avoid jargon.” That’s not wrong, but it misses the mechanism.

The real fix isn’t simplifying your vocabulary. It’s consciously reconstructing the listener’s mental model before you start talking.

Before any technical explanation, I now run a quick internal check: What does this person already know? What’s the one thing I need them to understand? What would I have needed to hear at year 3 of my career to grasp this? It takes thirty seconds. It changes everything.

The other fix that actually works: written asynchronous communication. The enforced structure of writing forces you off the abstraction ladder. You can’t assume context as easily in a Notion doc as you can in a verbal explanation, because writing forces you to confront what you haven’t explained yet. Tools like Linear for issue tracking and Loom for async video walkthroughs have become part of my personal workflow specifically because they force me to slow down and reconstruct context deliberately.

The developers I’ve seen document their architectural decisions in structured ADRs (Architecture Decision Records) consistently end up easier to work with — the act of writing is what forces the context out of your head and onto the page. Writing isn’t just documentation — it’s a communication training tool.


What Juniors Do Better (And Why Seniors Should Pay Attention)

Here’s the uncomfortable observation: junior developers are often better at explaining their work — not because they understand more, but because they haven’t yet forgotten what it’s like to not understand.

They’re closer to the confusion. They remember the stack overflow search that finally unlocked the concept. They can still reverse-engineer their own learning path.

Seniors have lost that map. The journey from confused to competent has been completely overwritten by competence.

The Medium-article junior who gets airtime in the meeting isn’t winning because their idea is better. They’re winning because they started where the audience is. That’s the whole game.

Look at that radar chart. Seniors dominate on technical depth and hold their ground under challenge. But audience awareness, context reconstruction, abstraction control — those are where juniors are, often, genuinely more effective. Not because they’re better developers. Because they haven’t yet developed the curse.


The Fix Isn’t Soft Skills Training. It’s Mental Model Mapping.

HR will tell you the answer is a communication workshop. I’m telling you it isn’t.

The fix is a habit, not a course. Specifically: make your mental model visible before you explain anything.

Start with a one-sentence framing of what the listener already knows. Then one sentence on what you’re about to add. Then the explanation. That structure — anchor, bridge, explain — works at every level of technical depth. It’s what good technical writing does automatically. It’s what verbal explanation almost never does.

The tools that help me do this consistently: Obsidian for building connected notes that surface my own assumed context, Cursor for AI-assisted code documentation that forces plain-language summaries of complex decisions, and simply reading my own explanations back aloud before I send or say them. If I can’t follow my own explanation, nobody else can.

In my experience, the developers who invest even a couple of hours a week in structured knowledge-sharing — documentation, async walkthroughs, written decision records — are the ones who get pulled into the higher-leverage work. Communication isn’t soft. It’s career leverage.


The Bottom Line

The most technically capable person in the room is often the least understood — not because expertise is worthless, but because expertise without translation is just noise in the frequency other people can’t receive.

The Curse of Knowledge is real. The communication debt is real. The career penalty for ignoring both is absolutely real.

The developers who advance aren’t always the most technically brilliant. They’re the ones who can make their brilliance legible to someone standing three abstraction layers below them.

You spent 20 years building a mental model of how systems work. Spend 20 minutes figuring out how to explain it to someone who hasn’t. That’s not selling out your depth. That’s finally making your depth count.


Vin Patel is an independent technologist, solo builder, and practitioner with 25+ years in tech. He builds tools including AEORank (aeorank.dev) and writes at vinpatel.com.