Principal/Staff Offers Evaluation.. + Prep Strategy | Software Engineering Career - Blind
Software Engineering Career
Principal/Staff Offers Evaluation.. + Prep Strategy
Interviewed with lot of companies in last 2 months and narrowed it down to below 6 companies based on team, level & TC.
Priority: Long term career growth, Scope of work, company culture.
| Company | Level | TC: Base + Bonus + Equity (per yr) + Sign-On | Team (if known) |
|---|---|---|---|
| Meta | E6 | 743k: 251k + 20% + 347k + 95k | Bootcamp |
| Coinbase | Staff | 708k: 237k + 15% + 400k + 15% | Team matching in progress |
| Snowflake | Senior II | 712k: 260k + 15% + 413k | Service Runtime team |
| Uber | Staff | 246k + 43k + 1.3M (4 yr, 35%, 25%, 20%, 15%) + 43k | Michelangelo (ML/AI Infra) |
| Salesforce | Principal | 685k: 296k + 15% + 280k + 50k (1st yr) + 50k (2nd yr) | Security |
| Staff | 590k: 250k + 15% + 250k (+ Microsoft pro-rated bonus) | Infrastructure team |
Excluding other offers as TC is relatively lower than above..
Current: Microsoft (65)
YOE: 10.5
TC: ~400k
Thanks folks for the patience. As promised earlier, updating my overall preparation strategy with additional focus on System design. This might end up being a lot of content so will try to update in 3-4 iterations. I will try to cover the below:
A. Overall Preparation Strategy
B. System Design strategy
C. Interview Experience/Tips
Preparation Strategy:
Overall, it took me around ~4-5 months for preparation and couple of months for interviews, so this is more of a long-term strategy. If you have interviews coming up in a few weeks, this might not be well suited for you. Don’t stress too much on total duration, it all depends on your day-to-day workload, personal commitments, and your learning speed.
For L6/E6/Staff interviews, the focus is more on System design & Behavioral interviews. I will try to cover SD strategy in detail. Let me know in case you guys are interested in Behavioral/Coding strategies too. I can update later once I get time.
For breakup, I spent around ~2.5-3 months on SD and ~1.5-2 months on LC. I would advise reserving blocks of time (2 or 3 days to a week) and focus on one category at a time. You can categorize LC simply by topics. More on SD categorization later. I started with SD and moved on to LC only after SD was at ~80%. LC count in the end: 400 (20% easy, 70% med, 10% hard).
I prepared for behavioral questions only in the end during the interview days. I would strongly advise preparing for the behavioral stories beforehand as it could be time consuming and overwhelming in the end. I learnt it the hard way.
I created a detailed plan and schedule before starting any preparation. This not only helps in tracking your progress and providing motivation as you move forward but also with interview scheduling in the end.
I used to set aside 2-3 hours during weekdays (whenever possible) for the prep and larger chunks during weekends. During weekdays, try to push these hours during mornings rather than the end of the day to be more productive.
System Design Strategy:
I divided the system design preparation into 3 tracks:
- Track 1: Theory & Real life applications
- Track 2: System Design Interview Problems
- Track 3: Cloud Design Patterns and Solutions
You need both depth and breadth for SD interviews but depth is what would help justify your level and differentiate you from other applicants.
Categorizing the resources into 3 buckets: Must, Recommended and Additional Reading. Try to target Must + Recommended at least.
Track 1: Theory & Real life applications
Theory:
- Must: DDIA
- Must: Kleppmann Lecture series: https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB
- Read DDIA end to end at least once. Highlight important stuff and make notes. You would end up referring back more often than you think.