Organization : Microsoft
Position : Software Development Engineer Intern
Microsoft Interview Process
I applied for the position of Software Development Engineer Intern through an employee referral. The process took a week and then I was interviewed at Microsoft. The process included a pool drive, a coding round and two onsite interview rounds.
Round 1 - Pool Drive
Fifteen multiple choice questions were asked in this round which were all moderately difficult and nothing that you can't answer if you know the basics. It was an elimination round and only the selected ones were able to move forward in the process.
Round 2 - Coding Round
The selected ones then had to go through this coding round where two questions were asked.
1) Reverse every two nodes of a SLL.
2) Find out if two sentences are anagrams of each other.
Round 3 - First Face to Face Interview
This was a bit tough round. Some good questions were asked. Luckily, I was able to answer most of them without losing the confidence. Some questions:
1) Generate all of the possible parenthesis for a given n.
2) Create a synchronization primitive for the operating system.
3) Run Length encoding.
Round 4 - Second Face to Face Interview Round
A bit more difficult I must say. I would say you must be prepared thoroughly with data structures and algorithms to crack this round. But don't lose hope even if you don't know the answer. Just try it and they might even give you some hint. Some questions:
1) Check if all the levels of a BST have the maximum number of nodes possible.
2) Shift all spaces in a sentence to the end.
How to crack Microsoft Interview
Study everything thoroughly. It will be my suggestion to all the candidates. The interviews are not extremely tough but you must be thorough with the basics. Data Structures and Algorithms are things that you must be having a thorough knowledge in at least.
For majority of the time, you will feel that the interview is oriented towards problem solving questions. Also, they are expecting you to write code keeping in mind all sort of testing angles. They will require your code to be runnable and productizable. Thus if you are not clear with any aspect, just speak up with your problem and get things clarified. They won't mind explaining things but they will surely mind if you make a mistake just because you did not understand the problem properly.
Lastly, you just need to have a positive attitude. If you are working hard for solving a problem, they will help you. They want to check if you are able to solve or code a given problem with a bit of help or not. Thus give your best shot.
Thanks Anmol for sharing the details of your interview.
Send more details and your personal experiences email@example.com