Mistakes engineers make in large established codebases
Working in large established codebases is one of the hardest things to learn as a software engineer. You can’t practice it beforehand (no, open source does not give you the same experience). Personal projects can never teach you how to do it, because they’re necessarily small and from-scratch. For the record, when I say “large established codebases”, I mean: I’ve now spent a decade working in these codebases. Here’s what I wish I’d known at the start. There’s one mistake I see more often than anything else, and it’s absolutely deadly: ignoring the rest of the codebase and just implementing your feature in the most sensible way. In other words, limiting your touch points with the existing codebase in order to keep your nice clean code uncontaminated by legacy junk. For engineers that have mainly worked on small codebases, this is very hard to resist. But you must resist it! In fact, you must sink as deeply into the legacy codebase as possible, in order to maintain consistency. Why is co
Working in large established codebases is one of the hardest things to learn as a software engineer. You can’t practice it beforehand (no, open source does not give you the same experience). Personal projects can never teach you how to do it, because they’re necessarily small and from-scratch. For the record, when I say “large established codebases”, I mean: Single-digit million lines of code (~5M, let’s say) Somewhere between 100 and 1000 engineers working on the same codebase The first working version of the codebase is at least ten years old I’ve now spent a decade working in these codebase
saved by
related reading
- Why I Ignore The Spotlight as a Staff Engineer - Lalit Magantilalitm.com
- Most Technical Problems Are Really People Problemsblog.joeschrag.com
- Scaling LLMs to larger codebases - Kieran Gillblog.kierangill.xyz
- AddyOsmani.com - 21 Lessons From 14 Years at Googleaddyosmani.com
- Every layer of review makes you 10x slowerapenwarr.ca
- AI is removing the middle class of software engineeringblog.florianherrengt.com
- Mistakes I see engineers making in their code reviewsseangoedecke.com
- Cognitive load is what mattersminds.md
- Write code that is easy to delete, not easy to... — programming is terribleprogrammingisterrible.com
- How I ship projects at big tech companiesseangoedecke.com
- A Bunch of Programming Advice I'd Give To Myself 15 Years Ago | Marcus' Blogmbuffett.com
- How to write complex softwaregrantslatton.com