I secured an internship with Microsoft during on campus interviews. I would like to first share how I prepared for the interview.
INTERVIEW PREPARATION
- I did most of my practice from Interviewbit. I tried to cover as many problems as I could topic wise. I followed a basic strategy. I used to read and understand a problem and tried to form a basic solution/strategy. If I was able to come up with something within 20–25 mins then I used to try and implement my strategy and tried to build upon it if I felt I could make it work. Otherwise, without wasting time I used to search for its solution, understand it and then implement it.
- For the key courses that I wrote in my resume, I revised them using my class notes and YouTube (revised in a similar manner as in exams).
- When the coding tests came closer (in the first week of Aug ‘19), I used to revise questions from Interviewbit and also solve company wise questions on GFG. Also I used to read about interview experiences of other people company wise (in GFG) which gave a basic idea of the interview pattern and types of questions asked.
- Also try to have at least one project relevant to SDE. I made an android app with my friend as a project.
INTERVIEW EXPERIENCE
- The first hurdle was the coding test. It consisted of three questions to be solved within 1.5 hours and was conducted on Mettl platform. It would be a nice idea to once explore the platform before sitting for the test. There were several sets of questions and we were given one of them randomly. My questions were based on simple string manipulation, Dynamic Programming and Greedy. I solved 2 questions completely. Out of the 225 students, 80 were selected for next round.
- The next round was a pen-paper coding round. We were given 3 questions and we had to write code for any two within 45 minutes. You might clarify your doubts with mentors, if any. Try to write complete code with comments in a neat, simple and understandable manner. Out of 80 students 30 were selected and were called for an interview the next day.
- The interview process consisted of three rounds in total:
- In the first round, the interviewer asked about the idea and motive of my project and then asked me to give a high level implementation of a particular functionality. Then he went to the key courses section and asked a few questions from one of the courses. Make sure you know about the content of the course that you write. Next he asked me a question on graphs. He asked me to write the code to find the diameter of a graph. So I wrote the code for a tree first and then optimized it. Then I extended my solution for graphs (just explained the approach). The interviewer helped along. Make sure you interact with the interviewer and describe to him your approach and steps while you write the code. Basically keep him involved. The interviewer also passes your feedback to the next interviewer (if you get through). Also they basically ask questions from your resume itself, so make sure you put accurate information and avoid any unnecessary details that you are not confident about.
- In the next round, the interviewer started with friendly conversation and asked me about my preparation, PORs and achievements in general to make me comfortable. She then asked a few questions about my project and then moved on to courses. She asked about what I learnt in the course (Theoretical Foundations of Computer Science) and asked me to give its real life use with an example. Again make sure you know the content. She then asked me a simple question where I had to find error and modify code in a simple ‘for’ loop. She asked a question on stacks and asked me to write code. Then she asked me another problem where I had to decide the data structure myself and write code. She wanted to test my knowledge of DS and see if I could choose the correct DS according to the situation. She then asked about Dijkstra Algorithm (I chose the topic Graphs) and its pseudo code with explanation.
- The next and final round consisted of simple HR questions. One of the notable questions was that being from a non CS branch why should they prefer me over a CS student. He then asked me to design an elevator system, to which I gave a loose answer. He then asked me to write code to print all permutations of a string. Lastly he asked me a few more HR questions and that was it. Be confident and answer precisely with strong points explaining why you fit the role.
INTERNSHIP EXPERIENCE
Microsoft did a great job in organizing a virtual internship. The duration was about 2 months.
The basic aim of my project was to increase code coverage of a particular repository based on the criticality of APIs by writing as many unit/functional tests as I could.
First week passed in setting up the PC and learning about the relevant Techstack. My mentor gave a demo of my work the following week, after which I started writing tests. So I used to basically understand the code and then write tests to cover them. It gave me a great insight about several tools and technologies, software design patterns and implementation/deployment of code at production level. The work hours were flexible. We used to have meetings with the manager twice a week where the team used to update about the progress/issues. The team was super friendly and helpful, which helped me complete my work smoothly in time.
Microsoft University Recruiting also organised several talks/activities with the seniors at Microsoft which gave a great insight into the company and also provided us with various tips to work efficiently. Our team also used to organize various fun activities to enhance interaction. I also had an interview with my senior manager in my last week where he asked me a few general questions, questions on OS and about my internship work and experience overall.
Even though I missed the on campus environment, I still had a great virtual learning experience!