Role: Principal Software Engineer
College: Not Specified
Interview Date: November 2021
Interview Type: Full-Time
Result: Offer
Difficulty: Not Specified
Rounds: 8 Rounds (1 Telephonic Manager, 2 C++ Technical, 2 Algo/DS, 1 Low-level Design, 1 Managerial, 1 Director, 1 HR)
Topics Asked: C++, Data Structures, Algorithms, Low-level Design, System Design, Behavioral
Experience:
The candidate interviewed for a Principal Software Engineer position in Noida in November 2021 and received an offer. The process was extensive, with eight rounds.
Round 1 (Telephonic - 1 hour - Manager):
- Discussion on current projects, technologies, basic C++ concepts, basics on design patterns, performance profiling, and debugging crashes. This was a basic screening of the profile.
Round 2 (C++ Round):
- Rule of 5 in C++.
- Implement own `unique_ptr` class (expected templatized class).
- Diamond problem of multiple inheritance.
- Questions on `unordered_map` vs `map`.
- Implement `unordered_map` with handling of hash collision.
- Write a class to handle arithmetic operations on integers of any size (expected big integer class).
Round 3 (Algo / DS):
- Questions on Data Structures were mostly easy to medium LeetCode level.
- Asked questions on BST, graphs, and linked lists.
Round 4 (Algo / DS and Low-level Design):
- Question on how to design a class hierarchy for a clock (interviewer expected all use cases to be handled).
- Again some Data Structure questions on BST and Graph (up to LeetCode medium).
Round 5 (Discussion on current project):
- What design patterns can be thought of for a software application?
- Discussion on Strategy, Observer, and Command design patterns.
Round 6 (Manager Round):
- Discussion on how to write scalable software.
- Approach for performance and code quality.
- Some straightforward behavioral questions.
Round 7 (Director Round):
- Discussion on hobbies, behavioral questions, reasons for leaving previous job, and why Cadence.
Round 8 (HR Round):
- Formality round: current package, expectations, work culture, etc.