I had applied through referral 2-3 months back. But got a call from recruiter mid October.
Interview process: Online assesment Virtual Onsite interviews
Online Assessment :
3 questions - 2 medium questions ( strings, DP based) and another question on LLD.
I got call from the Microsoft recruiter after a week that I passed the OA.
Onsite interview (3 rounds): All the 3 rounds were with different engineers from same org/team. Last round was from the hiring manager. I chose C++ as my coding language as I was comfortable with it for DSA and used Java for the design round.
Round 1/ DSA Round : Brief introductions and straight to question.
Q1- Stack & String based question. Further questions on complexity and optimisation. Interviewer seemed satisfied with my answer and code.
Round 2/Design round : Interviewer was a very senior engineer. We started off with discussing about my background , previous work , tech stack, couple behavioural questions like most challenging project, etc. I was given a very ambigious single line description of the problem statement. It took me a good 10 mins to understand the needs of the system by asking multiple questions on requirements, etc. I had to come up with a LLD & surface-level HLD to design a microservice that would provide the same services as when we use one of the popular MS Desktop applications ( cant reveal due to NDA ).After the HLD and I described in detail the models required for LLD. The interviewer was also keenly looking forward to the market/business suggestions that I was coming up impromptu during the brainstorming as well. It went slightly above an hour, but I think I faired well.
Round 3/ HM round : This was with the hiring manager. He asked about my background, skills and interests. We discussed in detail about one of my projects and few behavioural questions. Last few minutes I was given time to ask him questions.
Offer: I got the result that I was accepted the next day.