What does a typical day working as a software engineer (say mid-level) in FAANG look like? I know there are at least 2 important variables, namely a) the person (how good they are at managing time, how motivated they are, how good their technical and soft skills are, etc.) and b) the team and company they are on.
I'm curious about the nitty-gritty of it, namely how much time is spent coding, how much time in meetings, how much time for breaks and lunch, how common is it to work overtime, etc. I'm looking for both the good and the bad, not the shiny, social-media-friendly videos made by people.
I have read time and again (including from Alex) that many if not most FAANG engineers work evenings and weekends. I just read that today from an ex-Facebook LinkedIn influencer I follow who was talking about his own 1 (unpleasant) year there.
I know my question might be so broad as to be meaningless given the number of engineers and situations there are, but if I can get the day of "Joe or Jane average FAANG engineer" who spends 2-3 years and then leaves, that's what I'm looking for. Not the talented and ambitious few who are able to work long and smart and able to rise up the ranks to staff.
I was an SDE2(L5) at Amazon, and SWE2(L4) at Google, and I know of SDE2s at MSFT.
This is an interesting question, and I get the sense that what you are looking for is what kind of effort it takes to be "meeting expectations" to "exceeds" at mid level but not try so hard to get promoted. Note most FAANG expect promotions to senior, with Google being an exception, "try to not get promoted" isn't helpful long term.
In short, I don't believe overtime is frequent and isn't expected, but can happen from time to time. I'll split my answer into "what I've seen" and "what I recommend".
Sorry about the essay in advance 😅.
Fundamentally, as an mid level SWE, you need to be (1) independent, and (2) effective, to get good performance ratings. You can do this without overworking most of the time.
Apart from focusing on behaviors, choose your team wisely - you can generally get good answers to these questions from talking to team members (beware, managers can give rosy answers).
Avoid some of these following L5/senior level work.
Please note that these are all fairly natural progressions and are extremely rewarding, so I don't generally recommend avoiding all of this. You need at least one of these to reach exceeds anyway. However, this is a possible way to reduce time commitments at the cost of career progression.
I worked at Amazon as an L5 engineer, then L5 software development manager, then promoted to L6 software development manager. As such, I only worked in a mid-level engineer role there. What is going to impair my ability to answer exactly as you want to is I didn’t really do what my role entailed? I was glue, and sometimes that was coding, but a lot was being a de facto TPM, solving one big thing that impacted a lot of teams, and other weird things.
I will tell you what I saw as more common for the role. At first in video the L5 SDEs were the senior people, even if it’s a mid-level role. There was one L6 that was drifting away, and 3-4 L5s, with… I dunno, 20-25 L4 engineers we supported. That ratio meant a lot more support via code review, design review, triaging issues, validating test strategy with QA, arguing with counterparts on the devices side about requirements, and so on. I would expect a TPM or senior engineer to do a lot of those things.
In my second org, things were a little more normal. L5s were the coding workhorses. They did design some subsystems, led projects with a couple of other engineers on them, did some cross-team work, but still had to do a lot of the coding. The L4s were slower, needed more handholding, and so on, though many grew very quickly. I don’t recall a hard breakdown, but would say that meetings were 8-10% of their time, reviewing code 10-15%, reviewing designs 3-5%, planning 10%, designing 1-3%, oncall/operational support 10%, other weird overhead 5-10%, then coding in what’s leftover (37-53%). As they grew toward senior, the coding shifted down, mentorship, reviewing, ombudsperson work with other teams would go up.
Maybe this helps?
This is a really hard question to answer, but we'll shed a ton of light on it in our upcoming event: Should You Work At FAANG? - What Big Tech Is Like For Software Engineers
So the "average" Big Tech engineer is probably L4 (I'm using the Google/Meta standard), which is mid-level and getting the average rating with maybe the one above every once in a while. They would probably have some of these attributes:
Again, this will vary a lot and Big Tech isn't a monolith. You literally can't just be L4 at Meta for 2-3 years, as you need to get promoted to senior or get fired. Meta and Amazon tend to push workers much harder than Microsoft and Google.
In the meantime, you can watch the following video to get some insights into this before the event: The Real Pros And Cons Of Working At FAANG And Big Tech
Note most FAANG expect promotions to senior, with Google being an exception...
I think this is just for Meta. For Amazon in particular, SDE 2 is terminal, which makes sense given how hard the SDE 3 promotion and how many engineers get stranded at SDE 2.
Historically, Netflix only hired senior engineers and above (they only had 1 level), but they are now hiring across all levels (including interns), adopting Google's leveling structure (L3 for junior, L4 for mid-level, and L5 for senior). I'm unsure if they have a similar policy to Meta's up-or-out.
I don't know much about Apple as it's more secretive, but I don't think you're explicitly expected to progress to ICT4. I know a few people who are from Apple, and they mentioned that promotion is on the slower side too.
Thanks for all the feedback everyone :)