Round 1
Questions:
- DSA question on Graph: Levelled-up Course Schedule-2 problem - Course Schedule II
- Follow-up discussion on approach for Meeting Rooms II
- LLD discussion on class structure and DB structure.
Candidate's Approach
- Used Topological Sort with DFS for the Course Schedule-2 problem.
- Discussed a conversational approach for the Meeting Rooms II problem.
Interviewer's Feedback
No feedback provided.
Round 2
Questions:
- DSA question: Insert Delete GetRandom O(1)
- LLD question: Design a terminal-based prompt for creation/updation of files and directories (supporting mkdir, cd, and touch commands).
Candidate's Approach
- Created a File class representing File/Folder and a Driver class to handle commands.
- Faced challenges with folder names using absolute, relative paths, and paths starting with ~, and used the Chain of Responsibility pattern.
Interviewer's Feedback
No feedback provided.
Round 3
Questions:
- LLD question: Build a Windows search functionality with requirements:
- Search based on a string pattern against all file and folder names and file contents.
- Ordering based on heuristic logic.
Candidate's Approach
- Discussed class design including Driver, FileSystem, File, and Index classes.
- Explained the use of an inverted index for search functionality and updating the index asynchronously.
Interviewer's Feedback
- Interviewer seemed unsatisfied with the justification of the approach in HLD.
Round 4
Questions:
- Discussion on LRU cache and LFU cache (approach expected, no code).
- HLD question: Design a notification system for price changes of products by competitors.
Candidate's Approach
- Discussed scraping as an approach to capture prices and a simple SQL DB design for storing prices.
- Engaged in a healthy discussion about the best DB design, reaching an agreement with the interviewer.
Interviewer's Feedback
No feedback provided.
Round 5
Questions:
- HM round with simple HLD question: Design a distributed logging system.
Candidate's Approach
No approach provided.
Interviewer's Feedback
No feedback provided.
Preparation Strategy:
- For DSA: Used Neetcode 150 list and Greg Hogg's Python solutions. Maintained a GitHub repo for solutions and a shorter notes for complex approaches.
- For LLD: Focused on OOP concepts and design patterns, using resources like Design patterns from Python wife website.
- For HLD: Studied database internals and system design using resources like Grokking Modern System Design Interview and Jordan's YouTube channel.
Final Note: Emphasized the importance of staying focused and positive in the job market, and shared gratitude towards the Leetcode community for support.