Round 1 (Online on HackerEarth): The online round consisted of 25 MCQs and one coding question to be solved in 60 minutes (1 hr). The overview of the questions is as follows:
- MCQs consisted of questions mainly from the core subjects (OS, DBMS, OOPS, DSA), and a few were of mathematics and probability.
- The coding question was the part that took the majority of my time. This part actually depends a lot on luck too, because one of my friends got a really straightforward question. The question asked in mine involved non-trivial string algorithms and can be considered a Medium – Hard problem due to the heavy implementation involved.
The correct MCQ score was +2, and no negative marking in case of a wrong submission. The coding question consisted of 50 points but the score was rewarded even for partial acceptance. So the total score of the test was 100 points. Fortunately, I solved the coding problem just in time and maximum of the MCQs, so I cannot comment on the exact cutoff required to advance further.
Round 2 (Technical Discussion on Zoom):
This round was held almost after a week via Zoom call. The total duration of this round is usually 1-1.5 hours. The questions to be asked to depend a lot on the interviewer. For my friend, the whole discussion revolved around the projects mentioned on his resume. In my case, I was thoroughly assessed on my knowledge of CS fundamentals and two easy coding questions. The questions were majorly from Operating Systems, Data Structures and Algorithms, DBMS, OOPS, and few computer architecture questions. Here are a few of the questions that I remember:
- Discuss in detail what happens when you write a code and compile it.
- What is multithreading? State any C++ multithreading framework you might have worked with.
- Explain encapsulation, abstraction, polymorphism.
- Explain inheritance. What is the Diamond problem?
- How memory is allocated in C++.
- What is malloc? Differences from calloc?
- What is a microprocessor?
- Explain microservices architecture.
- Explain normalization and all their forms.
- Differences between inner and outer joins.
- DFS vs. BFS
- What is the heap?
The coding questions were:
- Detect a loop in the linked list. If a loop exists, return the start node of the loop.
- Find the third most frequent element in an array.
The interviewer concluded with a few HR questions like what are your strengths and weaknesses. The round lasted for almost 70-75 minutes. I couldn’t answer a few of the subjects’ questions, but I still, fortunately, got the offer, which I believe might be because of my performance in the online round and my way of tackling the coding questions. Hence, you must give your 100% to every round as better performance in a previous round can compensate for worse performance in a further round.