So you want to be a software engineer, part v: permanent staff - FAANG
The fifth article in this series, where we discuss the different types of roles and companies within software engineering
In the previous post we discussed permanent staff working in 'other' type companies. If you missed that post, please see it here: Part iv
I have defined the different types of companies as:
Design Agencies
Software Companies
Other
FAANG
FAANG
First of all, let's define what FAANG is in case you're not familiar with the term. It's an acronym for the big 5 tech companies, Facebook, Amazon, Apple, Netflix, and Google. I'm not quite sure what will happen with this acronym in time as companies change; I mean Facebook has already rebranded as Meta. Anyway....
To begin with I must be fully transparent and say I have not yet worked at one of these companies. However, I am quite familiar with their interview process, and I know engineers working at these companies so I think this post will still be worthwhile. I'll make it clear what I'm basing my opinion on in each example.
Let's discuss some of the pros and cons:
Pros:
Prestige - there is no question that if you're the type of software engineer who is driven to build high-quality software that will potentially serve millions of people, then these companies are the place to be. Of course there will be bragging rights associated with working here, for many software engineers, because the work is so cerebral and the crux of your job really is solving problems, your work is very much tied to your ego. After all, if being good at the job means you have to be very smart, then what does it mean if you're not good at the job? This is an over-simplification, and actually this could be a good topic for an article of its own, but in any case 'imposter syndrome' is very common in this industry and what better way to get over that by being hired at one of these coveted companies?!
Salary - these companies demand great quality from engineers, but they also pay extremely well for that quality. A good salary for a software company or the 'other' type at senior level would be somewhere between $140,000 and $160,000 whereas a senior engineer role at Google could get you around $300,000 to $350,000 in total compensation. A big part of this is that the FAANG companies tend to offer stock as part of the overall compensation whereas many other companies don't trade publicly and therefore don't have stock to offer. Take a look at Levels to see the salaries on offer; Levels
Challenging Work - I know I mentioned this in the 'prestige' bullet, but it's worth fully appreciating the kind of work you'll be doing at these companies. I can't think of another type of company where code you write will serve millions of users. No matter whether you go straight to a FAANG company from college, or you work in other companies and sectors before going to a FAANG, you will never have experienced the level of scale these companies operate at! Take 'Chaos Monkey' - I'm sure that other companies are using tools like this now, but Netflix was the first I heard of a number of years ago. You can read about it more here Chaos Monkey but essentially they have software that randomly switches off servers during business hours! This was an effort to test the resiliency of their microservice architecture. When you're working for companies who serve so many users, your approach to the job will have to become more professional in order to do a good job.
Cons:
Work-Life Balance - again I must be clear that I haven't worked at a FAANG company so this is largely based on conversations with people I know who have, from 'day in the life' type videos that people post on YouTube, and from conversations I read on Reddit. I'm led to believe that the work-life balance 'CAN' be bad, but it also depends on which team you work in, and your manager. The last stage of the interview process in a number of these companies is where they match you with a team, or teams that they think you'd best fit. I'm told that working for AWS at Amazon is one of the worst for work-life balance because uptime is absolutely critical, which is understandable considering the number of users and companies they support around the world. This means that you will have to work on-call, but the flip side is the pay is likely to be higher. I think if you're a young single person fresh out of college and land a job at one of these places, it would do your career a lot of good and you probably don't have as much need for balance as you don't yet have a family. If you have a spouse and children however, you probably want to make sure you land in a team where the balance is better. I've put this in the cons because it can be a problem, but just note it doesn't mean it necessarily will be.
Cog in the machine - I'm led to believe that because these companies are so large, and they have so many engineering teams working on different things, you probably won't have the same level of ownership and involvement as some of the other companies I've discussed. Again, for someone fresh out of college this can be good because you'll upskill like mad, and if you want to eventually slow down and have a family, you could go to one of the other types of companies and get a deeper dive into a product. For a more seasoned engineer moving to one of these companies from one of the other types, you might find it to be a culture shock to suddenly feel very unimportant to the company.
Hard to find a new job - This one sounds counter-intuitive just from reading the title, but working at one of these companies and trying to move outside of FAANG can be a challenge. You'll land a job at another FAANG easily, but beyond that is hard because many of these companies use their own internal tools day to day, which won't be available outside. This means that you can quite easily become a great Amazon or Google engineer, but your more general skills can atrophy. On top of that you will also have to take a fairly large paycut to move outside of FAANG because you won't get that kind of money elsewhere.
Evil? - is the old Google motto 'Don't be evil' still relevant today? These companies have gotten huge over the years and now wield a massive amount of power, both in terms of the data they have on all of us, and in that they are now the digital public square. There have been a number of controversial situations in the last few years, the most recent one the Hunter Biden laptop story. I don't know the full story there but what I do know is that Mark Zuckerberg recently had a long discussion with Joe Rogan where he admitted they got it wrong when they censored or partially censored that story. They discussed the difficulties of trying to manage content at such a large scale when there is so much misinformation out there. Managing this could be quite a stressful job, no matter what side of the aisle you are on, just being involved in the space where you maybe have to make these kinds of decisions could lie heavy on your conscience. Mark said clearly in the coming years there would likely be more situations like this because the tech isn't perfect.
Summary
Once again, having never worked in one of these companies I'm far from an authority, and I hope that some people who work there can read this and challenge any assumptions that may be wrong.
That said, I think overall these companies are great. If you manage to land in a good team with a good manager, you will be working on some very high-scale and highly performant systems. You'll be working on solving some very interesting problems for a lot of users, more users than you'll ever see working at any other company.
If you prefer a slightly more relaxed environment, where you can get a deeper dive, be higher profile and have more ownership, then I'd say a software company would be best for you. However, if you want to push yourself to your limits to be the best software engineer you can be, I'd definitely recommend looking into FAANG companies.
Stay classy!