I got laid off from Amazon as a new grad SDE 1 a few years back, and the two jobs I took afterward gave me neither the growth nor the total comp I wanted. My current job is very relaxed and a solid long-term place for my peace of mind. So I only went after FANG+ roles that looked interesting to me and would roughly double my TC. I've been interviewing for 30 months now, although I was only out of work for the first 9 of them. I have 4 years of experience.
The role I ended up landing was a level 63 Senior Software Engineer on the Live Site Reliability team at Microsoft. Because of that, my loop probably doesn't look like a typical Microsoft SWE loop. Senior SRE onsites I'd done before had very little coding and were mostly technical conversations, with the interviewers digging into how I handle incidents and how I reason toward a root cause. SRE is arguably broader than SWE.
Interview process
The recruiter said to expect three onsite rounds: first a coding round, then a technical round mixed with behavioural, then a technical round mixed with culture fit.
These are the main questions I remember across the three rounds:
- A time I was on-call for a big customer-facing service and had to investigate and fix an issue, and how I judged severity and got engineers involved. The follow-up was whether I pulled in the engineering team or debugged it alone.
- A time I had runtime data pointing to a problem and had to tie it to a recent deployment or feature flag change to triage fast, and what I did to cut time-to-resolution. There was also a clarifying follow-up about whether the story centred on a change coordinated with an outside team.
- How I think about automating a system so I can free up time for development work. The follow-up asked where my bar sits between "good enough" and "excellent", and where I stop deciding something is worth automating.
- A time I was given a task and couldn't finish it.
- A time I ran into a problem that stumped me, my teammates and the AI tools too, and how I got through it.
- A live technical scenario about a public service with CPU saturation. We went through a chain of "what would you check next" prompts. The service was running at very high CPU. I asked a bunch of questions to dig in. My proposed fix was rate limiting customers. My own take on that afterwards: coming from fintech, we would go to extreme lengths to avoid rate limiting, since every API call earns commission and customer trust matters. I'd rather scale up or push work onto a queue asynchronously than reject user traffic.
Preparation
I had roughly 2-3 weeks and began with almost no direction about what to focus on, which cost me a week of low-intensity studying.
Nobody told me about system design or Azure data-pipeline questions, so reviewing them was a sensible hedge, but I ended up with neither a system design round nor an Azure question.
I barely touched LeetCode, figuring SRE loops are light on coding. Even so, every one of the 3 rounds had a 20 minute coding question.
I knew I was technically strong on the technical questions and on coding that isn't LeetCode-style.
My time split, biggest first: SRE technical 50%, coding 25%, behavioural 20%, system design and Azure data pipelines 5%.
I wish I had put in more behavioural practice earlier, because behavioural is usually the onsite round I fail. Looking back, I needed more practice coding while talking under interview pressure, more behavioural prep, and a bit less SRE technical.
Offer
The Senior Software Engineer role on Live Site Reliability at Microsoft is the only offer I have, and it's a big step up for me. Honestly I figured I'd be downlevelled if anything.
A few months ago I came close to landing an SWE 2 role at Stripe. I made two mistakes there: I booked all the rounds on a single day, and I didn't prepare enough for behavioural. The thing I changed this time was putting in more behavioural practice.
Discussion
Loading comments…