Choosing between companies
If you have passed the interviews and received multiple offers, congratulations on the feat! Now you are faced with yet another problem (albeit a good one!) of choosing between companies. Here we will provide some insights into the factors you should be considering when deciding on the company to join. Every individual is different and certain factors matter more/less to others, so only you can decide what is best for you.
Do your due diligence by researching on the companies before deciding!
First and foremost, compensation. Most technical roles at tech companies would receive compensation in similar components - Base salary, Bonuses, Stocks, and Sign On. The Understanding Compensation section goes into more detail. Some companies are more flexible in their offer and allow candidates to choose between higher base salary or higher stocks. Base salary is the most straightforward to understand and you are being paid that same amount regardless of how well/poorly the company is doing. Bonuses are also usually a percentage of the base salary, so a high base salary is great for the risk-adverse.
Not all stock grants are equal as well. Some companies have linear vesting cycles (you vest the same amount every year), some companies like Amazon and Snap have backloaded schemes (you vest less in the earlier years, more later), and there are pay attention to cliffs as well. Stripe and Lyft recently changed their stock structure and announced that they will speed up equity payouts to the first year. This sounds good initially, but in reality there are some nuances.
Regardless of company, always negotiate your offer, especially if you have multiple offers to choose from! Having multiple offers in hand is the best bargaining chip you can have for negotiation and you should leverage it. We go into this more in the Negotiation section. Use Rora for risk-free negotiation services.
What does the company work on and is the company working on a domain you are interested in? Most big tech companies have teams working on all sorts of products. For these big tech companies, common products include ads networks, chat, enterprise offerings, video watching, payments, hardware products, industry-leading AI tools, internal tools, etc. Microsoft, Amazon, Apple and ByteDance have products in some of these areas as well. For many big companies, they are large enough that they build their own infra and internal tools for most technologies they use because most existing technologies on the market can't meet their scale.
That said, each tech company is uniquely known for something and it's in their DNA. So if you are interested in specific areas and you are sure you can be able to work on them, the choice should be clearer:
- Meta/Facebook - Social networks (Facebook, Instagram), chat (WhatsApp, Messenger), Metaverse stuff (Oculus)
- Google - Search, browsers (Google Chrome), Google Maps, cloud infrastructure (Google Cloud Platform), enterprise collaboration (Google Suite)
- Amazon - Cloud infrastructure (Amazon Web Services), e-commerce
- Microsoft - Operating systems, Microsoft Office Suite
- Apple - Hardware, operating systems, services (iCloud, Apple Music)
Personally I feel more motivated and productive if I'm working on products which I use as an external user as well, as I have a better understanding of the product from a user perspective which can potentially lead to better engineering and product decisions.
While a company can be working on various products, some products are only worked on in certain offices. For example, Google Singapore primarily works on Payments and if you're only interested in working on search, Google Singapore wouldn't be that great of a fit, although it is definitely a possibility to relocate to another country in future while still remaining as a Google employee. More on that on the Transfers and mobility section below.
Do find out what products and teams your intended location works on so that you have a better idea of how your potential working life looks like if you were to join that company.
If you are awarded stocks, the company's prospects will affect your compensation! Is the company poised to be successful in the coming years or are there factors hindering the company's progress?
How fast does the company promote its employees and does the company provide opportunities for its employees to grow? In smaller companies, you will get to wear multiple hats and build many products from 0 to 1. It's great for people who like to grow their product building skills and launch products quickly. However, technical growth might be limited due to the company's focus on product work and less on building infrastructure, which is usually only needed at scale. There's little need for a Principal Engineer in a small startup of 10 people where everyone is scrambling to build products. Career growth might be limited by the size and scope of the company and its product offerings.
Some companies promote their employees faster than the others. There's a saying that go to Google to rest and vest, go to Meta if you want to accelerate your career. I've found this to be quite accurate from what I experienced and from looking at my peers at Google. At Meta, engineers are required to get from E3 to E4 within 2 years and E4 to E5 within 3 years. On the other hand, Google has a slower promotion cycle - the average engineer at Google takes more than 2 years to get from L3 to L4, more than 3 years to get from L4 to L5 and more than 4 years to get from L5 to L6. At Google, the terminal level is L4 so there's no pressure to promote. None of my peers are L6 at Google but a few are already E6 at Meta and it is quite achievable. In my opinion, Google is a great place to learn to be excellent engineers. They require everything to be well-engineered, with design docs and high test coverage. Meta is a great place for career-driven folks who don't mind working harder to accelerate their career path.
Company culture refers to the beliefs and behaviors of a company's leadership and its employees. The tech giants are famous for their unique cultures:
- Google - Candidates are evaluated for their "Googleyness" factor during interviews, which is a set of traits Google employees should embody - "Doing the right thing", "Striving for excellence", "Comfort with ambiguity". As mentioned above, Google is known for their high emphasis on engineering quality and data-driven decision making approach.
- Meta/Facebook - In Facebook's early days, their internal motto was "Move fast and break things", indicating their focus on shipping products fast. In 2014, Mark Zuckerberg changed it to "Move fast with stable infrastructure" as the platform has matured and stability should a focus. I wrote more about Meta/Facebook's culture in a blog post.
- Netflix - Netflix's culture deck is publicly available on their website and their core philosophy is people over process. They like to think of themselves as professional sports teams - keeping the star players and letting adequate performers go instead of operating like a family - tolerating bad behavior and showing unconditional love
Since most readers are in tech roles, the tech culture of a company deserves special mention.
Gergely Orosz came up with 12 points to evaluate whether a tech company has a healthy software engineering culture
- Equity or profit sharing - Do employees receive equity?
- Roadmap/backlog that engineers contribute to - Do engineers contribute to the roadmap of their team?
- Engineers directly working with other ICs - Do engineers work directly with other roles (Designers, PMs, Data Scientists, etc)?
- Code reviews and testing - Do engineers peer code reviews and write tests often?
- CI and engineers pushing to prod - Is there continuous integration or a way for engineers to deploy to production?
- Internal open source - Can engineers access and contribute to code bases across the company?
- Healthy oncall as a priority - Is the oncall load manageable?
- Technical managers - Do the engineering managers possess technical background and skills?
- Career ladder (when above 10 engineers) - Are career ladders and expectations for each level well-defined?
- Parallel IC & manager tracks (when above 30 engineers) - Can one rise up the career ladder as an IC?
- Feedback culture - Is it the practice to give feedback to each other/the company?
- Investing in professional growth - Stipend for professional growth, mentorship program
It's no surprise that the FAANG companies hit all 12 points. Read more about it on his blog post.
Which company's culture resonates with you the most?
While the common practice is for employees to work 40 hours a week and 8 hours a day, some places are infamous for being more stressful and asks more time from their employees. Some Chinese companies famously require employees to work 6 days a week. Most tech employees do not get paid when they work overtime, so sometimes a more accurate way of calculating your salary is dollars per hour instead of the raw annual total compensations
Google is famous for being a company for moving slower and a place where people go to rest and vest (their stocks) while Amazon scored a C- for work-life balance in an employee survey.
Transfers and mobility
Does the company have offices around the globe where employees can possibly relocate to? This is obviously out of the question for smaller companies where there is only one headquarters, but some companies allow employees to be remote and some are even entirely remote! Meta, Google, Apple, and Stripe are examples of companies which have global presence and regional headquarters. At Meta and Google, mobility is extremely high given there are large engineering offices all across US, in London, Tel Aviv, and more recently, in Singapore. One of my managers at Meta has worked at four offices! Personally, I relocated from Meta/Facebook Menlo Park to Meta/Facebook Singapore right before COVID hit and a few of my Meta/Googler friends have done similar moves, some even moving from Singapore to the US.