Microsoft Interview Experience for SWE Intern
Department: Information Technology
- Batch: 2023
- Company Name: Microsoft
- Internship Role: SWE Intern
- Domain of Your Role(Software/Consulting/Core Electronics, etc): Software Cut-off: CGPA >= 7.5
Interview Process(How many rounds were there and what were the rounds): 1 coding round and 3 interview rounds(2 technical and 1 HR round )
Questions asked in the each stage of the process: In the online assessment, we were asked 2 DSA or Competitive Programming type questions, out of which one was greedy and another was dp.
First Technical Round:
- How will you transfer a tree from one program to another? (I answered using file handling and indexing in a tree)
- And a few follow-up questions on the above one(like more efficiency, ease of computation, different scenarios, time and space complexities.)
- Validating a string expression that may contain numbers, ‘*’ for multiplication, ‘/’ for division, ‘+’ for addition, ‘-’ for division, and some brackets. I came up with a stack approach. Then he asked me to code the same(need not run it). I have coded it, he was satisfied but just ran it to test and it was working fine, but failed for a corner case. He then asked me to debug. It took 2-3 mins but found the bug. I just changed the code and it worked well. However, it was not necessary to run the code. You can write the code in a text editor or doc file too
Second Technical Round: (for me it was technical+HR)
- (started with an HR question) What did you learn in these 2 years of college?
- How will you check whether a tree is balanced or not?
- I know the concept but never coded it before. I told my approach, he was OK with that. And asked me to code. I did it but in a brute force manner. He asked me if it was the optimal way. Then I came up with a DP approach with O(n) time, O(n) space. He was more than satisfied when I applied dp in that question. However, the most optimal solution has O(n) time and O(1) space. He asked me to think of such a solution. I asked for a hint. Then I came up with the most optimal approach.
- Reason behind selection results(Which skills helped you the most to get the job?): Data Structures and Algorithms(DSA), Competitive Programming(CP), Communication skills
- Preparation Strategy(How did you prepare for the non-interview rounds? How did your preparation evolve for the interview rounds?):
- I did not prepare for the coding round separately because I regularly do Competitive Programming(CP) contests which have given me enough confidence for the coding round.
- Because of regularly doing Competitive Programming, I was good at debugging which helped me a lot in the coding round.
- For the technical interviews, I have practiced (kind of revision at the same time) DSA questions from Leetcode and GfG for almost a month before the interview.
- I have revised the whole Object Oriented Programming(OOPs) because some companies do ask questions on that. While preparing for the internship season, I did pair programming with a few of my friends which helped me learn faster and effectively.
- Even today I do pair programming most of the time instead of just practicing alone. Pair programming is very much useful and a very effective mode of coding. I learned a few topics including Dynamic Programming(DP) just 1 month before the interview. Since I had less time, whatever the DP question I solved, I did it in both ways(i.e. top-down and bottom-up). This helped me to become good at it in less time.
HR Round: Coming to HR round. I have watched some mock interviews available on youtube which gave me an idea about the HR round. I was prepared to be confident and speak in a structured manner. But I didn’t go through the HR round. I got selected after 2nd technical interview itself.
- However, my interviewer asked 1 or 2 HR questions.
- He asked me “What did you learn in these 2 years of college?”.
- I was also well prepared for HR questions like “Tell me about yourself”, “Why should we hire you?”, “What are your Strengths and Weaknesses?”, “Why do you want to join our company?” etc.
- I have made a portfolio website and 2 ML projects.
- Resources to prepare from –
- Necessary Resources(Must Do):
- Leetcode and GFG(for DSA),
- Javatpoint.com(for OOPs),
- Advanced Resources(Can Do): Codeforces,
- Internship Experience(If Completed):
Anything else that you’d like to share with the students: Focus on DSA and your communication skills. some companies also ask OOPs questions. Consistency matters the most while learning anything. Pair programming is very much effective. Competitive Programming helps a lot in coding rounds, DSA, pressure handling, Problem Solving, and debugging.
- Communicate well with the interviewer
- Be confident
- Proper planning and dedication is helpful in cracking any company
- Don’t neglect CGPA and Sem exams. Many good students are not able to apply for many companies due to a CGPA cut-off(on-campus internships). Try to have a CGPA above 8.