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 |
|
|
Cons |
|
|
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.
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.
🌳 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.