I've never worked in big tech or Tier 1 companies but I'm aiming to grow as a engineer and would like to know and learn how different companies make such decisions?
Could you please share an example case study here? What does the entire process look like? Thank you.
Does it vary for startups and FAANG+ companies?
Yes, 100%. At a high-level, Big Tech engineers need to be much more thorough and thoughtful when doing system design for the following reasons:
Startups should still do some proactive design thinking (we do this at Taro), but it's going to be much lighter than what a FAANG company does. Startups are at a stage where they need to move blisteringly fast and pump out features quickly, so it's a waste of time to go super deep on system design, especially to the degree of Big Tech.
For context and to put things in perspective:
How do you answer such a question if asked during an interview?
I recommend these:
How much autonomy each senior engineer (L5 or L6) has in such decisions?
From my experience at Big Tech, an L6 (Staff Engineer) will have a lot of autonomy while an L5 would have a good amount (but generally won't be the largest voice in the room).
However, there's a ton of nuance to this:
Could you please share an example case study here? What does the entire process look like?
I highly recommend watching this series I made all the way to the end: System Design Masterclass: Taro Playlists
"Autonomy" is an interesting choice of word. I wonder what you mean exactly by this? Maybe, the ability to decide how design ought to be? Or how much input you need from higher level people to approve your design? Alex already gave an excellent answer overall but I want to dive into this a bit more...
I think no matter your level, designs are collaborative experiences where your most of your engineering colleagues needs to be convinced that you are proposing a good solution. Higher levels by no means enables people to dictate unilaterally what stack or what technology to use. See "Material but not magic" section of the Staff Engineer Book.
I think the difference in levels at FAANG for design has to do the level of ambiguity and scope of the project rather than their ability to more unilaterally decide which direction to go. For example, at Google:
Having said that, higher level ICs do tend to have more influence. But this is more of a result of their continued good judgement rather than their title or level - e.g. other engineers simply agree that the solutions they propose have been good and give the benefit of doubt that their new solution is going to be good. It's entirely possible for high level ICs to continually display poor judgement and propose bad solutions, to the point where they have no influence despite being at higher levels. Any proposal, no matter who proposes it, will be scrutinized at the end of the day, but having more, shall we call it, "street cred" can definitely help.
@Kuan: I didn't mean "autonomy" it in a negative way. I wanted to understand how much and what I need to contribute or bring to the table depending on what level I am at.
Thank you for sharing your responses, they are very insightful and helpful.