Background: about 4 years of YOE, full-stack DS at a startup.
Timeline:
- Cold apply → recruiter reach out: 9 weeks
- Reach out → phone screen: 3 weeks
- Phone screen → onsite: 4 weeks (got the notice in the third week)
- Onsite → result: 5 weeks (I heard some people waited even longer)
I'd long heard that Microsoft interviews move slowly, and now I've experienced it myself.
Phone screen: resume walkthrough plus some basic questions on online experimentation. Done in under half an hour.
Onsite was three rounds total:
ML round (I've never seen this format in any interview report before — it might be newly rolled out): AI coding tools were allowed and even encouraged the whole time (code completion and agent mode were both on). They handed me a CSV on the spot and asked me to build a model live, with MLOps discussion (training, deployment, that kind of thing) mixed in throughout.
A few pitfalls, so others don't step in them:
- It runs in your own local environment, not a provided notebook environment. I had just switched to a new laptop and hadn't gotten my environment set up yet, so I was very much on the back foot. In the end I didn't finish, and could only describe my training and deployment approach out loud. Hard lesson learned: get your local environment ready before the onsite — conda/venv, pandas/sklearn — and ideally have a full CSV → EDA → baseline model flow already working and within reach.
- Since AI tools were open the whole time, the actual thing being evaluated is probably not hand-written code, but how you direct the tool, whether you can judge if its output is correct, and your MLOps sense. If you just let the AI generate code but can't explain why you modeled it that way, you probably don't pass.
- I'm guessing I was an early guinea pig for this format, since the process still felt unpolished (otherwise they wouldn't just assume by default that the candidate has a coding agent set up locally). It'll probably keep changing.
Experiment/case round: two cases — one on experiment design for adding a product option, one on analyzing pilot users for an AI product (not going into the specifics). Then it was experiment design plus interpreting results, and the second case touched a little on other experimentation methods too.
HM round: went deep on metric design off of one case. There wasn't a separate behavioral segment — behavioral questions were woven into the case discussion as situational prompts ("how would you handle this situation").
(The whole loop had no standalone behavioral round and no SQL testing, which is different from a lot of the Microsoft DS interview reports I'd read.)
Feedback call: after getting the rejection, I sent a polite email saying I wanted to learn how to improve, and the recruiter agreed to a call. The feedback was that every round's evaluation was positive, and I fell short on two things — 1) no domain experience specific to the team, and 2) on level calibration, they felt I read more like a DS II than a Senior. There's no hiring freeze, and they encouraged me to keep applying.
Two takeaways:
- It's still worth politely asking for feedback after a rejection — don't feel awkward about it, the worst case is they just don't reply.
- One counterintuitive data point: with the exact same resume, cold-applying to the Senior role got past the screen, while cold-applying or getting referred for DS II kept getting me rejected. Whatever level your resume is written at is the level you get screened against — if you're around 4-5 years of YOE and stuck in between, I'd recommend keeping two versions of your resume.
I'm also currently job hunting — looking for opportunities in the Bay Area and Seattle, targeting DS or Senior DS roles; experimentation platform, marketplace, or product DS directions all work for me. Every round of this loop was positive — the miss was domain fit, not ability — and my interview track record is still fresh. I'm open to other big companies and startups too. I need an H-1B transfer (I still have many years left on it, no I-140 yet).
Discussion
Loading comments…