1.2.3 Startups or big companies

This is a question that I often hear from people early in their careers, and a question that can prompt heated discussions. I’ve worked at both big companies and startups, and my impressions were pretty much aligned with what is often said of the trade-off between big company stability and startup high impact (and high risk).

Big companies Startups
Pros
  • Brand name recognition. Good for your resume.
  • Stability. FAAAM’s stock is unlikely to be worthless anytime soon.
  • Well-defined roles. You won’t have to work as much as at a startup.
  • A standard procedure to go up the ranks. Just do your job reasonably and you’re set.
  • (Hopefully) good code review to help you become a better engineer.
  • Plenty of smart people to work with. Mentoring and guidance.
  • Perks: free food, free massage, free car rentals, free Lyft codes, generous 401(k) matching, ...
  • Can contribute significantly to the product.
  • More autonomy and more decision making power.
  • Can get to know everyone.
  • Can do multiple things at once, making your job interesting.
  • Big picture, both technically and non-technically. You can see the entire software stack and see how a company runs as a whole.
  • Can grow with the company and get promoted much faster than at a big company.
  • Will learn A LOT.
  • No complacency to settle into.
  • Might end up with a lot of money.
Cons
  • Easy to settle into complacency.
  • You’ll be just another cog in the system. Your effort or lack of it won’t change anything.
  • You’ll probably work with a small piece of code. Your work becomes boring fast.
  • Unlikely that the management will ask for your opinion about where the company is headed.
  • Too many meetings.
  • When you tell people about the company, they go: “What?”.
  • The startup will probably fail and your 0.1% equity will become useless.
  • Have to work on a lot of things, even things that you hate.
  • Terrible code review. After a year, you might become an even worse coder.
  • Less mentoring.
  • The startup doesn’t have as many world-class engineers as Google for you to work with.
  • Fewer perks.

Statistically speaking, software engineers are more likely to work for a big company than a small startup. Even though there are more small companies than large corporations, large corporations employ more people. According to StackOver Developer Survey 2019, more than half of the 71K respondents worked for a company of at least 100 employees.

alt_text

I couldn’t find a survey for ML specific roles, so I asked on Twitter and found similar results. This means that an average MLE most likely works for a company of at least 100 employees.

🌳 Tip 🌳
A piece of advice I often hear and read in career books is that one should join a big company after graduation. The reasons given are:

  • Big companies give you brand names you can put on your resume and benefit from for the rest of your life.
  • Big companies often have standardized tech stack and good engineering practices.
  • Major tech companies offer good compensation packages. Working for them even briefly will allow you to save money to pursue riskier ventures in the future.
  • It's good to learn how a big company operates since the small company that you later join or start might eventually grow big.
  • You'll know what it's like to work for a big company so you'll never again have to wonder.
  • Most startups are bad startups. Working at a big company for a while will better equip you with technical skills and experience to differentiate a good startup from a bad one.
  • For immigrants, big companies might be the only option since small companies can't afford to sponsor visas.

If you want to maximize your future career options, spending a year, or even just an internship, at a big company, is not a bad strategy.

Whether you choose to join a startup or a big company, I hope that you get a chance to experience both environments and learn the very different sets of skills that they teach. You don't know what you like until you've tried it. You might join a big company and realize you never want to join another big company again, or you might join a startup and realize you can't live without the stability big companies give you.

And if you believe that you're offered a once-in-a-lifetime opportunity, take it, whether it's at a big company or a startup.


👱 Personal story 👱
After graduation, I joined NVIDIA, not because it was a big company, but because I was excited about the opportunity to be part of a brand new team working on challenging projects.

Looking back, I realized the brand name of NVIDIA helped my work to be taken seriously. Being an unknown employee at an unknown company would have thrown me even further into obscurity.

I stayed at NVIDIA for a year and a half then joined a startup. I wanted a fast-moving environment with a steep learning curve, and I wasn't disappointed.

Startup

🌳 Tip for engineers early in your careers: Know what you're optimizing for 🌳
With each career decision, be mindful of what you're optimizing for so that you can get closer to your eventual goal. Some of the goals you can optimize for are:

  • Money now: some people need or want immediate money, e.g. to pay off debts or to prepare for an economic downturn that they believe will happen in the near future. They might interview with multiple companies and go for the highest bidder. There's nothing wrong with that.
  • Money in the future: some are more concerned with being able to make a lot of money in the future. They might choose to pursue a Ph.D. that pays next to nothing but will help them get a highly paid job later.
  • Impact: some focus on making an impact. You might work for a startup that allows you to make decisions that affect millions of users or work for a non-profit organization that changes people's lives.
  • Experience diversity: the most interesting people I've met optimize for new experiences. They choose jobs that allow them to do things that they've never done before.
  • Brand name recognition: it's not a bad strategy to choose to work for the most well-known company or person in your field. This brand can open many doors for you down the line.
  • Personal growth: those who optimize for this choose the job that allows them to learn the most, which in turn maximizes their career option. They might choose a job because it offers mentorship or allows them to work on new, challenging tasks.

You can optimize for different things at different stages in your life, but you can only optimize for one thing at a time. You might optimize for new experiences when you're younger, money and recognition when you start having more responsibilities, then impact when you've had enough money to not have to worry about it.

If you don't know what you're optimizing for, optimize for personal growth. Get a skill set that maximizes your options in the future14.

🌊 Resources 🌊

Twitter thread: Advice for people who want to leave a big company to join a startup by Jensen Harris.

How to get rich in tech, guaranteed (Startups and Shit, 2016).

Twitter thread: Joining a startup is not a get-rich-quick scheme by me (shameless plug)


14: This is a corollary of the principle of maximum entropy: the probability distribution which best represents the current state of knowledge is the one with largest entropy.


This book was created by Chip Huyen with the help of wonderful friends. For feedback, errata, and suggestions, the author can be reached here. Copyright ©2021 Chip Huyen.

results matching ""

    No results matching ""