Applied for the job through LinkedIn. There were 4 rounds in total,
Round1 : Machine Coding
30 minutes briefing, 1:30 hrs coding, 30 minutes evaluation
We were asked to design a restaurant management system, here's the question
Design a system for managing a restaurant. The system should handle the following
functionalities:
● Allow the restaurant admin to define the number of tables.
● Allow restaurant admin to add, update, or remove items from the menu. Each menu item
should have attributes such as name, price, veg / non-veg and category (starter, main
course, dessert).
● Allow customers to browse the menu and allow filtering on factors (veg / non-veg,
category), add items to their order, specify quantities, and place the order.
● Allow restaurant admin to manage tables in the restaurant as in number of tables.
● Calculate the total bill for each order, including taxes and any additional charges.
Provide options for customers to pay the bill via various payment options, such as cash,
credit/debit card, or online payment (card payment levy additional charges).
Bonus Functionality:
● Provide a system for kitchen staff to view incoming orders, mark them as prepared, and
notify wait-staff when orders are ready for serving.
● Allow multiple orders for the same table (AddItems even after 1 order was placed)I tried to use some standard design patterns
-> A Repository interface and an in memory implementation of the repo for all DB related apis
-> Singleton for the same in memory impl
-> Strategy pattern for the filtering logic
Going through the complete user journey in your head once, before explaining it to the evaluator would be helpful.
Round2 : Data Structures and Algorithms (1 hour)
Easy - https://leetcode.com/problems/design-hashset/description/
Medium - https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
Medium - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/description/
I had solved all three before, so it was not very difficult. I went from Brute Force appoach to optimised approach, explaining each step. Following Take You Forward (Striver) (youtube channel) really taught me how to do the step by step optimisation. Also it would be really helpful if you had practiced doing dry runs on code editor or notepad before interview, since I was asked to write only the pseudo code in notepad.
Round 3 : Design round (1 hour)
The round is supposed to include both LLD and HLD, but the interviewer was focussed on LLD. I was asked to design bookmyshow following these steps
Practically when I work, I'm a bit all over. I mix and match all the steps parallely and arrive at a clear solution. So it was a bit challenging for me to go step by step linearly. The interviewer kept cutting my thoughts since I was jumping ahead to class design or DB design. It was a one hour interview but it extended to 1:40 hrs! Except for the DB design part, I felt this round was a bit redundant, since it was almost the same as Round 1 without the freedom to let our thoughts flow.
Round 4 : Hiring Manager (1 hour)
The interview was completely based on my resume, my work experiences. The interviewer was focussed on my current job. Again he was interested in the LLD part of it. I explained the DB design of the features I had done. This was followed by a series of common interview questions like "What are your Strengths and Weaknesses?", "Why are you switching?", "How do you keep yourself updated?", "Explain one of the technologies you recently learnt" and so on. It lasted an hour.
The responses between each round took around 1 - 3 days. The final negotiation took almost a week. The HR was pretty responsive, so it was hassle free.
Edit:
Here's my LC stats and pr
Easy: 73/810
Med: 138/1688
Hard: 7/717
I have attended only 2 contests.
(Overall I've solved some questions in basic patterns. I love DP, so a lot of DP problems)
For DSA I would highly recommend Take You Forward. I had some 10 days before the interview, so I roughly solved or went through 10 - 12 problems each day. Also, I did around 10 mock assessment (under Interview tab)
For sys design, I followed Gaurav Sen on YouTube. But I think for SDE 2 they are fully focussed on LLD, as I've written, 3/4 rounds tested LLD only.