Round 1
Questions: Given a dependency adjacency list to install packages, return the installation order or throw an exception if a cycle is found. Solved using Topological Sort.
Candidate's Approach
The candidate solved the problem using Topological Sort to determine the installation order of packages based on their dependencies.
Interviewer's Feedback
No feedback provided.
Round 2
Questions: Design a system to track recently viewed items (with int limit initialized with class) for customers, similar to an LRU cache.
Candidate's Approach
The candidate implemented the core part of the system, achieving O(1) time complexity for adding items. However, they could not complete the return function but explained their thoughts and runtime complexity of O(limit).
Interviewer's Feedback
No feedback provided.
Round 3
Questions: System design for a smart city with millions of sensors, collecting and averaging data every hour.
Candidate's Approach
The candidate proposed a basic solution and discussed trade-offs, including one point failures and percentage of tolerance. However, they did not have time to address scaling to other cities or additional trade-offs.
Interviewer's Feedback
No feedback provided.
Round 4
Questions: Write a Notification System that validates a request of notification to be valid.
Candidate's Approach
The candidate found the problem vague and spent too much time trying to clarify constraints and the problem statement. They wrote a significant amount of syntactically correct code but only realized late in the interview that it was an OOPs question. They rushed to create a basic design for validating notification JSONs in the last 10 minutes.
Interviewer's Feedback
No feedback provided.
Final Thoughts
The candidate felt confident on coding questions but unsure about system design and OOPs. They missed the mark on the Notification System due to lack of clarification and are uncertain about their chances.
Takeaway:
Clarify vague questions early, especially for OOPs and system design. Focus on high-level structure before diving into details. It is recommended to be direct in asking if the problem is OOPs, Code, or System Design, as some interviewers may not provide assistance during struggles.