FAANG vs Startup
I’m a software engineer now. It took me a few years to actually call myself that but now that I’ve been around the block for over 6 years I think I can finally claim the title.
I’ve been working at Amazon (which is one of the famous FAANGs) for 6 months now. Prior to this I was working at a startup for 3 years. So I’m in a good position to write on this clickbaity title that hundreds of creators have made videos on. Of course this is just my experience and while 6 months is not a long time it’s enough to have delivered a feature or two while still having my last experience fresh in memory.
What’s Same
Work work work work
There’s always a lot of work. This is unavoidable. The days of rest and vest are over. In a startup or FAANG teams are getting downsized to achieve maximum efficiency. You can’t hide. You have to show your work. This means not just doing the work but also keeping everyone informed of your work via Jira or whatever project management tool your company uses.
The Interview Process
Every company does the same things even if they claim they’re different. They all have some Data Structures and Algorithms leetcode style interview, some system design and some behavioral interview. Check out my post on preparing for software engineering interviews.
The code quality
This might be controversial but it’s not like FAANG engineers write exceptional code. Since all engineers come through the same process, they apply the same principles in writing code. Most code starts clean and slowly gets messier as more features are added until someone takes up a refactoring project. The simple rule is this: As long as it works and makes money, ship it.
Learning
People say that you learn a lot more in a startup than in a FAANG but that’s not true. Both offer enough learning opportunities, you just have to be willing to take them. You just learn different things. eg. in a startup you might learn how to build a new service for a few hundred users while at a FAANG you might learn to scale an existing service from thousand to million users. Knowing both is crucial if you want to grow as an engineer.
What’s different
Impact
Something I developed at Amazon is being discussed on the news right now. That’s a pretty sweet feeling. You can show your family and friends something you built because more often than not they’re using a product owned by a FAANG company.
It also looks good on your resume. Recruiters know of FAANG. They might pass on you if they don’t know the startup you worked for.
Growth vs scale
FAANGs operate at a massive scale so the chances to grow are generally limited. At a startup you’re building things block by block and can see the growth quarter after quarter. The customer base grows and so does the codebase.
For me personally, after a couple of years of working at a startup I knew the entire codebase. That is not ideal because that means we were not growing as rapidly as I would have liked. That is antithetical to the reason for choosing to work at a startup. That’s when I knew I had to switch. In a FAANG when this happens you can always move to a different team and have a fresh start.
Cross-team collaboration
Now when I think of cross-team work, it means another engineering team. When I was working at a startup that meant customer service or even sales. There’s a common phrase startups like to throw around that their employees “wear a lot of hats” but it’s true. At a startup I would be explaining not just to non-technical employees how to use a certain feature but also be on calls with customers to learn what issues they’re facing. I was directly involved in a lot of decisions that were more business decisions than tech decisions. Now all my discussions are about engineering and engineering only like which design patterns or which AWS services to use.
Fast vs slow
Startups can move fast because they have very little liability. They still have to follow all the laws but they usually serve a limited audience. eg. A B2B SaaS startup only has to worry about their very specific users. So from the time a feature is requested to it being in production could be a matter of days. However when you work at the scale that a FAANG does, every new feature has to pass multiple reviews to make sure that we’re in compliance with all legal and privacy requirements of all the millions of users who might use that feature. This adds significant delay to the development work. There are teams dedicated to it but it is important to factor these into your estimates.
FAANG has better tools
At a startup most things are still “under development”. That means your builds can take an hour and you have to manually change some configurations in the cloud to make sure your code is actually in production. This works with a small team but as the team grows the chances to bring down the service grow exponentially higher.
FAANGs have dedicated teams to making your development experience better. It is a worthy investment since there are thousands of commits being merged daily. If each one triggered a re-build it would shut the whole place down forever.
This also means FAANGs have to develop a lot of internal versions of open source tools to make them work with all the other internal build tools. For example, Amazon has its own fork of React Native which we use to develop cross-platform apps and it works with Brazil - Amazon’s internal build system.
Higher bar for entry = better engineers
Maybe. Big tech companies over years have attracted the best talent in the industry. They have built some incredible software that continues to work resiliently and performantly year after year at scale. One can’t judge a company by its best. The gap in averages is rather small and anyone who is working at a startup can switch and work at a FAANG easily. In my personal experience, my conversations with senior engineers in startups has focused on that startup’s stack whereas at Amazon everyone is required to know everything.
What’s good for you?
The hell do I know. You decide…
Kidding. I can’t leave you with that.
What I can say is that no one knows what the future holds so your best bet is to maximize the chances of having a long successful career.
Success means different things to different people and even to the same people at different times in their career. If you just care about making money, go the FAANG route. Work for a decade you will make more money than 99% of all people that have ever lived. But if you value a more rounded experience and want to be more than an engineer then a startup might be a better option. There are only so many upper tier positions in FAANG but there are tons of startups that will take a bet on you to take up leadership positions even with limited experience.
If you don’t know what to do and you’re relatively new in your career (0-2 years of experience) and if you have the opportunity to work at a FAANG, take it. Having that brand name on your resume will open a lot more doors than a startup even if you were the most cracked engineer at that startup.
Disclaimer
FAANG stands for Facebook Amazon Apple Netflix Google. These used to be the most sought-after software engineering jobs because of the size of the companies and their pay aka “big tech”. Now there are other companies that also offer the same like Uber, Stripe etc. So FAANG is just a placeholder now for any big tech company.