1st Round: Coding Round on Cocubes platform.
Three questions were asked in 90 minutes. The questions were easy, but the interface was very bad. It did not allow running custom test cases. We had to just complete the functions, so we could not use the datatypes we wanted (in C++, a character array was given, not a string). Also, it showed results only for basic test cases. It might be possible that the code failed for boundary conditions.
2nd Round: Pen and Paper Coding Test (Group Fly).
Two questions were asked in 60 minutes. All students were divided into groups of 6-7. We had to write the code considering all possible cases and boundary conditions. Two to three students from each group were selected.
3rd Round: 1st Interview.
Two questions were asked. After a little discussion about the efficient solution, I was asked to write code for both questions.
4th Round: 2nd Interview.
Again, two questions were asked, and I had to write code for them. Some OS questions were also asked.
5th Round: 3rd Interview.
Some questions based on C, C++, and OS were asked. The interviewer also asked about my project (not much technical detail, but why I did it and what problems I faced while doing it).
1st Round
Q1: Given a char array, find the average of ASCII values of the characters. Q2: Given a number, find the next smallest palindrome. Q3: Find the lowest number by removing n digits from a given number.
2nd Round
Q1: Given the arrival and departure times of all trains that reach a railway station, find the minimum number of platforms required for the railway station so that no train waits. Q2: Write a function to connect all the adjacent nodes at the same level in a binary tree.
3rd Round
Q1: Given a list of tickets, find the itinerary in order using the given list. Q2: Write optimized code for findmax(n) = max( n, findmax(n/2) + findmax(n/3) + findmax(n/4) ). (Top-down DP).
4th Round
Q1: Given a large string and a small string, find if any permutation of the small string is present as a substring in the large string. Q2: Given a matrix with 0s and 1s, where 1 represents obstacles. Count the total number of paths possible to reach the bottom-right block from the top-left block, if possible moves are right and down. Q3: Difference between threads and processes. In which situation should we use threads? What is thread pooling?
5th Round
Q1: Code for the reader-writer problem in C++. Q2: Where are variables created by malloc and arrays stored? Q3: Given many processes, some are CPU-bound and some are I/O-bound. How to achieve fairness in round-robin scheduling, as CPU-bound processes will get more slots? (Answer using a multi-level feedback queue).
Some questions on virtual paging.
Last question: Where do you see yourself after 5 years and why do you want to join Microsoft.
The following metrics were computed from 51 interview experiences for the Microsoft Software Engineer role in Bengaluru, Karnataka.
Microsoft's interview process for their Software Engineer roles in Bengaluru, Karnataka is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Microsoft's Software Engineer interview process in Bengaluru, Karnataka.