Thank you for all your wishes, suggestions and response on my Google interview post, As requested here I'm posing my Microsoft (L-62) interivew process. I limit the details of exact questions asked as per signed NDA with Microsoft.
Interview Process
I have applied approx. 6 positions in microsoft which are matching to my experience and areas that I worked on from October to November - 2020, I got a call from Microsoft HR on March for the one of the opening that I applied in career portal. HR told its a weekend drive and conducted 3 rounds on that Saturday drive.
1. Interview round - 1: (Coding round - 60 mins)
In this round interviewer spend initial 20 mins discussing about my previous and current work and cross questioned me on some of the microservices design considerations, and then last 40 mins He gave a Leetcode medium question based on Recursion and Ip addresses parsing. I never solved it in leetcode before but luckily I could able to comeup with the backtracking based solution and wrote the code in the given shared codility platform and able to complie run it.
Feedback positive proceeded for next technical round.
2. Interview round - 2: (Multi threading - 60 mins)
This is an interesting round; Interviewer took initial 5 mins to sattling me up and then he bought up codeshare link which contains declaration of an logging interface which has two methods to be implemented, the challenge is that this API will be used concurrently and I need to design and develop this API making sure it should work for simultenous requests as well.
The implementation was approximately 5 lines in each of these methods but I almost had discussion with interviewer through out 1 hour discussing various mutli threding scenarios and its prevention or mitigation techniques.
Feedback positive proceeded for Hiring Manager round
3. Interview round - 3:
This round takes place for 1 hour 40 mins, Manager started with my career, previous companies and reasons behind switching companies and some behavioral questions starts with "tell me about a situation" etc. He acknowledge that I have got a good feedback from previous rounds but he also want to ask some technical question, this is where winds turned opposite to me He asked about MVVM patterens and design patterns some of the core principles in WPF side. I answered with the best of my knowledge but I also showed honestly that I'm not interested in working in that area.
Feedback mixed, not proceeded for Hire call with their team
A twist : I have got a rejection call from HR, infact I followed up on the same day and she confirmed that they are not taking hire call because Manager seems to wait on your profile for some more time, though your technical caliberation is good. Then a week later HR reached out to me for another position and conduct interviews.
1. Interview round - 4: (Coding round - 60 mins)
In this round it starts with leetcode hard level linked list question which is little popular as well, I solved it with code in 20 mins, then interviewer ask me another medium level question based on Binary Tree BFS traversal after I solve it in next 15 mins he given follow-up on the same question with variation on the traversal I perform in little complex scenario it took me 10 mins to discuss with him and crack the twist that his follow-up requires, once I found that I took 5 mins to modify my code and satisfy new requirement.
2. Interview round - 5: (Coding round - 45 mins)
This is another coding round interviwer directly jumped into question based on 2D matrix and its traversal on some pattern, It is little tricky interms of maintaining indices for traversing, I had solved similar problems before so able to come up with working code.
Feedback positive proceeded for next technical round.
3. Interview round - 6: (LLD round - 45 mins)
In this round interviewer was very friendly, gave me some requirements to develop a 2D board based game with some rules and ask me to come up with different approaches for representation of data, and algorithm to identify varios states in the game and keeping in the mind that game should be played by mobile divices with low bandwidth and ram devices. The discussion went on good terms I had provided three approaches and discussed various trade offs like space, time, client-server traffic exchange etc.
Feedback positive proceeded for next technical round.
After this round I had to wait for 1 week to schdule my hiring manager round.
4. Interview round - 7: (Hiring Manager round - 45 mins)
In this round first 15 mins he discussed about my profile and current work, then last 30 mins He ask me to design a search engine for flight search scenarios. I had asked various questions to limit the scope, set the expectaions on consistency, availabilty etc. and had a good open ended discussion with various trade offs.
After this stuffing HR confirmed that feedback is positive and wait for the recruitment HR to get back with offer, after 10 more days finally they released offer.
Things that worked for me:
a. Being honest - Though I got rejected on the weekend drive due to the conflict of interest becuase of my honest answers to some of his questions on that interivew I feel that happened in favour of me and I may not enjoy working with that team even if I selected by faking some.
b. Being prepared - before going to interivews I'm already in preparation for Tech companies for almost 5 months and again for Microsoft I solved all the Microsoft Explore card in Leetcode and did my own research about the Teams, group that I'm interiviewing, and asked mostly relavent questions on each of my interivews at the end.
c. My past experince - Make sure what ever you do in your current job understand clearly why you are doing that way, what are the design considerations, trade offs, customer/user interest. I have been working as Sr. Developer in distrubuted system based on microservices this helps me answering many design related to questions.
Lastly, as many of my previous post readers requested info related to preparation for System Design, I started with Groking System Design course to understand fundamentals from there I move on to 'system-design-primer' Git repo which have handlful of resources, CS50 videos. I have a habit of following technical conferences like goto, I/O and MS build and many other from long time that gave me overal exposure to different set of technologies, paradisms and designs (more to go :P).
Thanks for reading this much, if you need anymore info feel free to comment will try to reply / update on the post.
Wish you all the best and success!