I was referred to MS and was directly called by HR for interviews (so no coding test before interviews).
Got a call in Feb 2024 starting (first week)
I was given an option to either give interviews in the hiring event or before that, I opted for before hiring event.
Finally interview got scheculed in March(second week) after HR pospotned it 3 times, which gave me time to prepare so nice only.
All the MS interviewers were very nice and were open to discussion during the interviews
Round 1 and 2 were scheudled by the HR together, so basically I had to give both the rounds doesnt matter on the results of first round. Both were coding rounds, no design in these rounds.
Round 1 (1-1.5 hrs): Felt more like a screening round (as I didnt gave a test). Basic intro, Discussed a bit on my resume trying to understand what I did. What is a HashMap, HashMap time complexities for insert delete and get - I went ahead with the implementation based approach on this, like started to think how a hashmap is implemented to give the answers to the questions. At first I didnt remember the implementation of a HashMap but after discussion got to the right path and answered all the questions. Then he as asked what is a BST (I asnwered) then he gave me a question on Tress
Q - Connect all the nodes to its right neighbours in a tree. Good part was the BST was complete so it was a very easy question. I wrote the question in codelitiy but he didnt expect me to run it, just dry ran it for test cases and he was okay with the approach. He asked me the time complexity for it as well.
He was more keen on checking my confidence in the interview with which I answered questions. So even when I gave right answer for time complexity he questioned it to check if I stand by it.
Then he asked me what is a Heap (I answered). I showed him how heap is implemented in the explanation of the heap only coz I knew that one lol. Then he asked me to tell the time complexity for insertion and deletion. I showed him on the heap tree how the insertion and deletion time complexities will be calculated and gave the answer.
At last he asked me if I have an array and I want to make it to a heap what will be the time complexity, I said nlogn as we can just loop over the array and insert it into a heap. He again questioned it and I misunderstood it to be him asking the proof, I tried prooving it but the time was ending so he said just give me a final answer and I said its nlogn then he said I was just checking your confidence and I said ohh i thought you asked for the proof so I was trying that, answer is nlogn.
he asked me I have any questions for him, I asked some basic MS culture related questions and the round got over.
Round 2 (1.5 hrs): after basic intro he went straight to the coding question, again on codility.
Q: Give the max width of a tree, now tree can be any tree not necessarily complete so width can be somewhere in the middle as well. Width means the length between the first node and the last node on each level.
At first I started with a wrong apporach and then when I failed to give right answers for all the test cases I changed my approach to the right one i.e. to use 2i and 2i-1 for getitng child numbers from a parent node.
For this round I had to run the whole code, From test case creation to the main logic function. I was lucky that my both attempts ran without any compilation error in the first get go so gave me more time to explain the logic and change it, than keep on wasting time on acutally writing my code.
he asked me I have any questions for him, I asked some basic MS culture related questions and the round got over.
After 2 day Hr called me to schedule Round 3 on a Monday. I got the weekend, so again got lucky to learn about Design concepts.
Round 3 (1.5 hr Design): This was a proper design round. Interviewer was very experienced and after basic intro and little bit deep dive on my resume he asked me a coding questions first. He expected me to write the code (function and the node class for linked list).
Q: Sum of integers - intergers being given to you as a linked list, so it can be as long as you want.
I discussed multiple approach to this and wrote the code for the O(n) approach code which I was missing the trailing 9 case which I said I will add later but as the time was less he said lets first go to the other question. Before moving he already knew how am I going to do it, its just I didnt write it in code.
He asked me do you know OS or networking, I said no. As I am from no CSE background I am not very well versed with the theory but I have worked and gained experience on coding and my deisgn concepts.
Q: He asked me to design a library system.
First I asked is it HLD or LLD that you want, he said good question first give me HLD then if time allowed we will go to LLD.
I designed it well, showed him what metadata we will need, took care of all the cases and features, took care of CAP theory, SQL no SQL, scalability and what type request client will throw to server
He asked me to have a run through of how we will go about in the design if a student wants to come and do x thing. Then he asked me how you will scale it.
After this round it took 1 week for the HR to get back to me and I thought I am rejected because of the non CSE thing. HR told me all the three rounds were positive feedback for me so we are moving to the AA round (final behavioural round). I had a friend who gave round 4 also because his round 3 design didn't go as well so MS gave one more chance to him.
Round 4 (1.5 hrs AA): Genrally in AA round you are asked whatever was given a bad rating in the previous rounds. Like if your design or coding was not that good, he will ask design or coding respectively. For me he just asked behavioural questions, about me, resume, my work, my working type and so on.
I was given a offer after 2-3 days of this round