Round 1
Questions:
- Give a feature that is not there in C++14 but is there in C++17.
- Explain the implementation of map data structure using balanced binary search tree (AVL tree) and how rotations happen. Write the pseudo code.
- Deep questions on C++ and OS:
- Difference between semaphore and locks
- What is race condition?
- Critical section
- Different types of casting in C++ (static, dynamic, reinterpret)
- Lifecycle of a program and memory allocation for static and dynamic variables
- DSA question: Given currency exchange rates, find the best path of conversion between two currencies.
Candidate's Approach
- For the currency exchange problem, I boiled it down to a graph problem using Dijkstra's algorithm. I wrote design-level code using proper classes and OOP concepts.
Interviewer's Feedback
- The interviewer was convinced with my approach to the DSA question and my explanations on C++ and OS concepts.
Round 2
Questions:
- Discuss your internship project in detail.
- Basic to intermediate questions on Python:
- List comprehension
- Generators
- Global Interpreter Lock (GIL)
- DSA questions:
- Priority Queue problem
- Digit Dynamic Programming (DigitDP) problem
Candidate's Approach
- I provided detailed explanations and code for the Python questions and successfully solved both DSA questions, passing all test cases.
Interviewer's Feedback
- The interviewer was satisfied with my performance and understanding of the topics discussed.
Round 3
Questions:
- Debug a code related to maintaining critical sections without encountering deadlock.
- Implement a stock buy order and sell order matching design problem.
Candidate's Approach
- I optimized the critical section code by implementing a condition variable, which reduced the runtime significantly. However, while implementing the stock order matching, I made a mistake by deleting an element while iterating, which led to negative feedback.
Interviewer's Feedback
- The interviewer was happy with the optimization I made but provided negative feedback due to the mistake made during the stock order matching implementation.
Verdict: Not Selected ---> But eventually got an offer from Microsoft in DAY0. Will be posting the experience for that shortly!
TIPS: Be patient as the interview will be rigorous. Take a deep dive into C++ end to end from GFG or LearnCPP. Have a firm grip on OS and CN.