Microsoft Intern hiring process explained step-by-step | On-Campus 2021

Piyush Dubey
5 min readSep 28, 2021

--

Not just the questions, but an experience :).

The intern selection process was conducted in two stages, the Online Coding round and the Interview rounds.

Phase 1: Online Coding Round — 1 hour

This round consisted of two coding questions and was conducted on the Codility test platform.

Question 1: The first question was a simple math implementation problem. Given total number of dice rolls T and a total sum ‘TotalSum’ to achieve. K of those T rolls have been performed, and the sum is CurrentSum. You have to return the values of the remaining rolls such that your net sum becomes TotalSum.

Question 2: Given a one-dimensional distance of length N. In K different positions of the N length distance, cranes have been installed. Given two arrays, a[] and b[], such that a[i] describes the position of the ith crane and b[i] describes the coverage limit of the ith crane. A crane can cover positions in the range [ a[i] — b[i], a[i] + b[i] ]. Given two positions C and D, you are required to move an object from C to D. Cranes can move objects to and from anywhere within their coverage limit. Determine if it’s possible to take the object from C to D using the given installed cranes. You do not need to minimize the number of cranes used or the number of times a particular crane is used.

Both questions were pretty straightforward. Around 30 students were shortlisted for further interview rounds.

Phase 2: Interview Rounds

Microsoft doesn’t follow a strict policy on the number of interview rounds. The candidate could be selected based on the round 1 interview if the interviewer is satisfied enough. But generally, there are three interview rounds. And I happened to fall in this category, having two technical and one technical + HR round. All three rounds were conducted on the MS teams platform.

Round 1: Technical Interview — 50 mins

The interviewer asked me to introduce myself. After the introduction, the interviewer briefed me about the format of the round. The interviewer asked me two DSA problems, explaining the problem statement and giving few examples. Then I was asked to share my screen and code the solution. The questions were:

  1. Given an array, replace each array element with the greatest element in its right subarray. I proposed my solution, and the interviewer was satisfied with the approach. Then I was asked to share my screen and code the solution on any editor of my choice. I chose Sublime text and presented the code solution, which worked fine.
  2. Find the left view of a binary tree. This is a standard DSA question ( Link ). I proposed my approach using BFS and extracting the first element in each level. The interviewer was satisfied and asked me to code the solution. I wrote the code. Then I was asked to modify the same code for the right view. Further, I was asked to modify the code such that it takes a boolean ‘is_right’ variable and returns the right view of the binary tree if ‘is_right’ is true and left view otherwise.

The interviewer then wrapped up the round and asked me if I had any queries, to which I asked a few questions.

Round 2: Technical Interview — 50 mins

This round was very similar to the round 1 interview. The interviewer asked me two DSA questions. I had to explain my approach to the problem and then write code for the same.

The questions were as follows:

  1. Given the preorder and inorder traversal of a binary tree, find postorder traversal. This is another standard DSA problem( Link ). I explained my approach to the solution and was asked to code the same. I messed up a bit in writing the code, making the classic mistake of writing ‘=’ instead of ‘==’. The interviewer was very supportive and helped me with the debugging process. I struggled for 10 mins, only to find an ‘=’ missing. Finally, it ran, and we moved on to the next question.
  2. Given an array of integers and desired sum, find the number of pairs giving the desired sum ( Link ). I used the hashing approach to solve the problem.

Round 3: Technical + HR Interview — 40 mins

You know the drill. Start with the introduction, answer a DSA question, Explain your approach and code the solution. The question was:

Remove redundant elements from a sorted linked list. I explained my approach. The interviewer then asked to merge two sorted linked lists while removing redundant elements without using extra space ( Link ). I again explained my approach and was asked to code the solution. I left few edge cases, not accounting for empty lists. The interviewer was very patient and friendly. He used an example to dry run through the code and explained my mistakes, which I corrected, and he seemed satisfied.

The interviewer then asked if I had any queries. I asked him about the kind of teams interns work on, he explained it and asked me which team I would prefer. The discussion went on for a while, and then he concluded the interview.

PS: I wasn’t asked any questions about my projects, but they are equally probable, and some of my batchmates were thoroughly questioned about their projects.

At the end of the process, 17 students were offered summer internships, and I was fortunate to be one of them :D.

Key Takeaways

  1. Make your DSA concepts strong. Interviewers may ask standard questions directly, and if you have practiced those questions beforehand, it helps a lot.
  2. Be confident during the interviews. Don’t hesitate to ask for time to think about the question and form a rough idea. Even if the question seems unfamiliar, don’t lose your calm.
  3. Think out loud. Keep sharing your approach with the interviewer. It helps them gauge your progress and correct you if you’re thinking in the wrong direction.

All the best for your preparations, or all the best for your interviews, in case you read this a day before :P.

--

--

Piyush Dubey
Piyush Dubey

Written by Piyush Dubey

A third year BTech undergrad at IIT BHU. I like a few things and I like to write about those things.

No responses yet