You're not a senior engineer until you've worked on a legacy project (2023)
What Counts as a “Legacy Project”
- Many note that “all successful projects become legacy,” but disagree on when that label applies.
- Heuristics mentioned: no original authors remain; stack/language used nowhere else in the company; migration cost is enormous; outdated practices and little/no tests or docs.
- Some use a stricter definition: legacy is code without automated tests; others emphasize accreted special cases and fear of changing it.
- Distinction is drawn between merely “existing code” and true legacy with high coupling, age, and organizational baggage.
Legacy Work and Seniority
- Common view: you’re not really senior until you’ve worked deeply on legacy code, especially under constraints (time, risk, business dependence).
- Stronger claim: the real step-change is maintaining your own code as it ages, seeing your past design decisions fail in production, and then doing a second system without overcorrecting.
- Counterpoint: seniority also requires greenfield experience—choosing technologies, designing for availability, avoiding over‑complexity. “Bit of everything” is seen as ideal.
- Several criticize title inflation and gatekeeping; “senior” in job ads often just means a few years’ experience.
Why Legacy Work Matters
- Legacy systems often carry the “river of money” and hardest production constraints; careers are “made” here.
- Working on them builds:
- Understanding of real-world tradeoffs and historical constraints.
- Empathy for previous teams (vs reflexively disparaging “shitty code”).
- Appreciation that v1 always has flaws and that rewrites usually repeat old mistakes.
- Watching a greenfield system turn into legacy is seen as the best teacher of cause and effect in architecture.
Pain Points and Risks
- Slow, mentally taxing debugging in poorly tested, poorly documented, sometimes decades‑old code (VB6, Fortran, COBOL, weird build chains, etc.).
- Organizational issues: separate ops/QA, ticket handoffs, long lead times, little authority to change infrastructure.
- Career risk: becoming the sole expert can be a moat or a trap—easier to cut a “cost center” than fund modernization.
- Greenfield rewrites that fail or coexist indefinitely with old systems are cited as common, expensive anti‑patterns.
Effective Approaches and Mindsets
- Recommended attitudes: curiosity, humility, asking “why” (Chesterton’s Fence), not defaulting to rewrites or trendy stacks.
- Tactics: add tests around fragile areas; refactor incrementally; respect existing conventions; avoid drive‑by framework changes for résumé padding.
- Some argue that real seniority includes the courage to change risky legacy code and the judgment to do only what’s safe and necessary while keeping the business running.