Experience: ~3.5+ Years
Education: Tier-I
Offer details: Microsoft L61 | Azure Storage
After shortlisting of the profile, I got a call from the recruiter for 3 interviews on the same day.
Round 1 (DSA+Design):
- Talked about the most challenging project. Challenges, Architecture.
- Design Questions:
- Considerations while building highly available systems.
- Single point of failure and mitigations
- Problems around API Gateways
- Coding Question:
Round 2 (DSA+Design):
- Given an array of strings (T[]), for a given string (T[i]), remove all the strings containing the string T[i] as its prefix.
- Input: [ar, arp, fin, finance, lb, win, winner] (Not necessarily given in sorted)
- Output: [ar, fin, lb, win]
- Design question:
- Design a distributed message queue
- Deep discussion on race conditions, locks, mutexes.
Round 3(DSA+Design):
- Check if the given tree rooted at r is a part of the tree rooted at T.
- Variation of this where memoization is required.
- Design:
- Serialization and deserialization of a hierarchical structure like a tree.
- Issues with data corruption, ensurity of structure.
- Discussed about executable structure
- Differences between shared libraries in Windows VS Linux.
After a couple of days, the recruiter called for availibility of a Hiring Manager interview.
Hiring Manager Interview (Coding+Design+Behavioral):
- Started with in-depth discussion on the on-going project.
- Discussed on the most challenging debugging I have done.
- The discussion landed on desigining stl::map and how to store the data internally. (Balanced Binary Search Tree/ AVL/ Red-Black Trees)
- How databases store data: B (or B+)-Trees
- Shortcomings of GNU compiler and C++, in general.
- Couple of generic design questions.
Got an email shortly after the interview asking for current compensation details.
Got a call from the recruiter with the offer details a few days later.
EDIT:
Compensation Details: TC: ~51LPA (Which includes 25% of 70k USD stock options)