Process was very simple it started with a phone call with a third party recruiter. First was an introductory call simple non-technical just to verify I have the experience they are looking for.
Second call was the a programming interview with one of the senior engineer (not the hiring manger), We discussed about the role and experience. He asked me to write simple C related programs on shared screen. Not very tough. Correct definitions type questions.
Third, interview was onsite with 4 team members, 3 interviews were 30 minutes long with one lunch interview of which was 30 mins lunch + 30 minutes interview. First 2 interviews were technical in nature focused on C programming, RTOS and communication protocols. Few questions related to source control. 3rd interview was 50% technical + 50% behavioral. (how do you work in team environments). After every interview your current interviewer tells the next one about your strength and weaknesses and also whether you are a 'HIRE' or 'NO HIRE'., based on which the next interviewer tailors his questions to test your strengths. Good thing is Microsoft wants to hire people for there strengths, and they wring you out on that so you better be good and confident. After 3 interviews (most of the times 4 ) if you get majority of 'HIRES' then they discuss whether or not to send you to the next level. Which is mostly with a senior level manager while you wait in the lobby. (which I found it extremely weird and insulting.) If there decision is in your favor then you get interviewed by the last interviewer. I got the last interview which was again 30% technical (just to test how you approach a problem), and 70% non-technical behavioral to see understand whether you will be a good fit for Microsoft's culture.
Overall, timeline wise, extremely sluggish process. It took around 5 months from the first interview to get the offer and another 1+ month to perform background check and get the joining date. It took 2+ weeks for recruiter to tell me that I was selected, another 3 weeks to get the offer. Another 1+ months for background check and finally the joining date.
So, if you have meditated your whole life and want to test your patience apply here. I wasn't actively looking so it kind of didn't really matter to me.
They really need to improve and be more agile in the recruitment process that could be another reason why they are loosing their employees to Amazon. Amazon has a policy to give feedback within 48 hours. And interview process takes around 3-4 weeks of time which is average and acceptable.