Big tech companies aren’t a good first gig

Joel Kemp
2 min readDec 30, 2020

--

If you’re a new grad or junior dev, I don’t think big companies are the most helpful first gig — especially if you end up on a feature team. At the end of your time there, you will likely find yourself unable to build anything yourself without the company’s stack. You likely won’t be a well-rounded engineer, if that’s important to you; you’ll be an X engineer (where X is the name of that big company).

The big company paradox is that they reject candidates that primarily know high level abstractions, but once you’re in, it’s “you don’t need to know how this stuff works; just use our own framework, custom infrastructure, and code abstractions.”

Big companies believe efficiency comes from abstractions and standards. The less you have to solve recurring problems, the more you can focus on your business logic. They want you to write business logic. So you’re given an opaque box to work with, with an arrow pointing to where you insert your business logic.

So what might you learn there? Probably how to refactor, test, and review code; how to solve problems in a specific business domain; how to navigate teams (both systems and politics) to build large projects. You’ll probably gain some confidence as a problem solver, and some familiarity with a programming language and database (unless that’s been abstracted away).

Abstractions are only helpful if you understand what’s been abstracted. Understanding the abstraction requires either excellent contextual documentation (unlikely if it’s custom), or the (really difficult) skill and confidence to piece together the context from the code. Object-oriented languages make this even harder with class explosion being “idiomatic.” Most folks just won’t bother; those that do might be Staff+ in title/rank. Now that you’re aware, you can get there, but no one will force you to.

An understanding of the fundamental tools and techniques that let you build systems (from scratch) is solely up to you to drive and acquire at a big company. Small companies (especially startups) are less likely to have spent years building custom abstractions, so you’re kind of forced to understand what’s happening under the hood.

I’d go to a startup first (to learn), then to a big company (to earn).

--

--

Joel Kemp
Joel Kemp

Written by Joel Kemp

Senior Staff Software Engineer @Spotify.

No responses yet