BUSFACTOR.TECH
Team Health

The Underpaid Engineer You're About to Lose

Signals, not ranks

PAID BELOW. ABOUT TO LEAVE.

The engineer you can least afford to lose is often quietly paid below market. How to spot the criticality-to-pay mismatch and fix it before they resign.

4 receipts in this article ↓

TL;DR: The engineer you can least afford to lose is disproportionately likely to be quietly underpaid. Pay tracks negotiation and hiring-market timing while criticality accumulates silently, and the most load-bearing people are often the least likely to renegotiate. No tool can see salaries. But your engineering data can show you criticality - sole ownership, review load, glue work - and you already know the pay. Put the two lists side by side this week. The mismatch is the resignation you can still prevent.

Somewhere on your team, there is probably an engineer carrying more than anyone around them realizes, paid as if they aren't. They've never threatened to leave. They've never made a fuss about comp - they're not the fussing kind, which is part of why everything important quietly ended up on their plate.

Here's how you're currently scheduled to find out who it is: an exit interview, and the sudden discovery that counter-offer budget can materialize in a single afternoon once it's too late to matter.

Why underpayment hides exactly where it hurts most

Three quiet dynamics, all system-level, none of them anyone's fault:

Pay tracks negotiation; criticality accumulates silently. Compensation gets set at hiring time and moves when someone pushes. Criticality has no such events. It grows one merged PR, one incident, one "ask them, they'll know" at a time. Meanwhile the hiring market keeps repricing new joiners, and a long-tenured engineer who never pushed can drift below people they're now onboarding. Comp compression is a known, boring dynamic, and it lands hardest on the people who've absorbed the most context.

The most valuable work is the least visible. Tanya Reilly's "Being Glue" names it precisely: noticing who's blocked and unblocking them, reviewing the designs, onboarding the new people. Glue work is technical leadership, and it's frequently unrewarded when nobody makes it legible. The glue-work engineer makes the whole team's throughput possible and shows up in a feature-count as zero.

Criticality concentrates by default. Avelino et al. (2016) found 34% of 133 studied codebases had a truck factor of exactly one - a single person whose absence orphans the system. Nobody chooses that concentration; it emerges, and the 2024 Stack Overflow survey's silo numbers (45.2% of developers say silos block ideas from crossing the org) show how routinely knowledge pools around individuals. The person it pooled on rarely announces it. They just quietly become the one everything depends on.

Stack those three and you get the profile: long-tenured, glue-heavy, sole owner of something critical and unglamorous, never renegotiated. The org's single largest key-person risk, sitting below band, telling nobody.

The honest mechanic: no tool can see salaries

Let's be precise, because a lot of vendor marketing isn't: you cannot detect an underpaid engineer from engineering data. Salaries aren't in git. Anyone implying their dashboard finds underpaid people is selling you something dishonest.

What engineering data can show, with receipts, is the other axis: criticality. Who solely owns the areas that would orphan on departure. Who carries the review load everyone else depends on. Whose fingerprints are on every incident fix. Whose glue work holds the delivery together. You hold the missing axis already: what you pay people. The detection method is the cross-reference. Criticality from the system, comp from your own records, and the mismatch found by you, in a spreadsheet, this week. That honest split is the entire method.

The organization overview: a health index dial with the six sub-scores behind it and the top findings underneath.The organization overview: a health index dial with the six sub-scores behind it and the top findings underneath.
The overview - the whole org in one dialLive product · fictional demo org

The audit: free, this week

  1. List the five people whose departure would hurt most. From evidence, not vibes: sole ownership of critical areas, review dependency, operational duties, glue. If you want the rigorous version of "sole ownership," the method is in key-person risk.
  2. Put comp next to each name. Against your own bands and current market for the role and level. You're looking for one pattern: critical and below band, with extra attention to tenure, where compression hides.
  3. Hunt the blind spots specifically. The three the first pass always misses: the glue-work engineer whose output is other people's output; the sole maintainer of the boring critical service nobody thinks about because it never breaks; the loyal long-timer whose pay predates two market cycles.
  4. Fix the band before they interview. A proactive correction is a retention event the whole team silently registers. A counter-offer after the resignation letter reads as exactly what it is, and arrives after they've already rehearsed leaving. If it gets that far, you're in damage-control territory regardless of what they decide.

And one guardrail, non-negotiable: this audit ranks nobody. The moment it becomes a worth-per-salary leaderboard, it stops being retention and becomes stack ranking with a finance hat on. The SPACE research is clear that no single metric captures what a person contributes, and any tool computing "value minus salary" is selling a firing signal, not a protection signal. The output of this exercise is a short list of people to protect, never a ledger of people to judge.

What "good" looks like: nobody on your critical list is below band, and criticality gets reviewed as routinely as compensation does.

How you'd actually see it

The criticality half of the audit is computable, continuously, from the history you already have. Busfactor's people scorecards build it per person: strengths, unique contributions, irreplaceability, and the cost of losing them in your currency - a retention signal, pointed permanently at "protect," by design. There is no composite worth score, no ranking view, and deliberately no way to build one, because the same data sorted best-to-worst becomes the thing we refuse to ship.

The limits, stated plainly: it estimates criticality from system data (authorship, review, ownership) and can't see undocumented knowledge, off-repo work, or (again) anyone's salary. It hands you the who would hurt most list with receipts; the comp comparison and the decision stay human, where they belong.

The work-rhythm punchcard: a weekday-by-hour heatmap of when the team actually ships.The work-rhythm punchcard: a weekday-by-hour heatmap of when the team actually ships.
The work-rhythm punchcard - when the team actually shipsLive product · fictional demo org

The door

The fix is two moves, and they're both mandatory. Fix the band this week, proactively, while it's still a gift and not a ransom. Then fix the concentration, because being irreplaceable is a trap for them too: spread the knowledge until no single person is load-bearing alone. Pay them like they matter, then make it so their vacation doesn't scare you. If you want the criticality half computed instead of guessed, with receipts, currency, and a standing "protect" list, that's what the scorecards are for. The exit interview is the most expensive place to learn who mattered. The spreadsheet is the cheapest.

Frequently asked

How do I detect an underpaid engineer?

No tool can - salaries don't live in engineering data. What you can detect is criticality: who solely owns areas that would orphan, who carries the review load, who does the glue work. Put that list next to your comp data, which you already have, and the mismatches surface in an afternoon.

Who is most likely to be underpaid on an engineering team?

The quiet, long-tenured, load-bearing people: the sole maintainer of a boring critical service, the glue-work engineer whose contributions are invisible in feature terms, and anyone whose pay drifted below newer hires because they never renegotiated while the market moved.

Should I wait for a resignation and counter-offer instead?

A raise offered only after a resignation letter reads as exactly what it is, and by then the person has already imagined leaving and interviewed elsewhere. Fixing the band proactively is cheaper in money and enormously cheaper in trust - and it's the version the rest of the team watches and learns from.

Is ranking engineers by value the way to find retention risks?

No. A single worth score inevitably becomes a stack rank, and any tool computing value against salary is selling a firing signal, not retention. The honest method is directional: identify who is critical and hard to replace, protect them, and spread the load - no leaderboard required.

Receipts

Keep reading