| Very much this. A couple of more points to add: 1. There was a time when the pay distinction between working for big companies and small/mid was clear and present. But these days, the line is blurring. BigCos have realized that startups are eating their lunch and hence they are investing heavily in new ideas and doing better engineering on the old ones to develop those markets even further, faster. Smaller companies too have realized that they need to compete with the BigCos and hence have started to offer similar comps/perks. More and more of the VC funded fast-growing companies are offering packages competing with BigCos. 2. Hence, for a software engineer, the main reason to join/not-join a company today is less about pay. It's more about the type of work you will get to do, and the people that you want to work with. 3. There is something to be said about having a brand, but given how tech is percolating everything we do, it is also getting very differentiated. There are hence brands in every "flavor" of tech. e.g. if you want to work on self-driving cars, Waymo is a great brand. But if you want to work on healthcare tech, there are others. I train software engineers to do better at challenging interviews and I do that for a living. The way I see it, the landscape has been shifting in this direction for at least past 5 years, if not more. At least in the large tech hubs of the US. |
I would say that if a software engineer is optimizing for income maximization they should almost certainly join one of FAANG, unless they have a formidable appetite for risk and uncertainty. Consider some of the data compiled here: https://www.levels.fyi.