Round 1: System Design
Questions: Design a full stack application that could fetch all "marked favorite" and "currently watching" shows from various streaming platforms, aggregate them, and display them in this application. Initially design for 1 person, then scale to 1M users, incorporating load balancers, sharding, replication, and caches.
Candidate's Approach
The candidate felt the question was straightforward and easier compared to other system design questions. The interviewer was more interested in the candidate's decisions and consideration of trade-offs before finalizing specific features.
Interviewer's Feedback
No feedback provided.
Leadership Questions:
- Tell me a time when you had to choose between 2 choices, both being a potential solution to a problem, but went ahead with one of them, why and what was the situation?
- Tell me about a time you helped out a coworker.
- Tell me about a time you received critical feedback.
Round 2: Bar Raiser
Questions: Design Amazon locker.
The candidate was given 25 minutes to code that out but couldn't finish, defining classes with some methods left empty. The candidate communicated clearly what the methods would do and which classes could access them.
Candidate's Approach
The candidate felt that 25 minutes was insufficient to incorporate every feature of the Amazon locker but communicated effectively with the interviewer throughout the process.
Interviewer's Feedback
No feedback provided.
Leadership Questions:
- Tell me about a disagreement that you had with a team or manager (grilled deep).
- Tell me about a time when you had to set out a vision while there isn’t one (again grilled deep).
Round 3: Logical and Maintainable Code
Questions: Topological sort with many follow-ups, focusing on object-oriented design. The candidate completed this in the first 40 minutes. Given another question, the candidate solved the "house robber" problem on the spot.
Candidate's Approach
The candidate completed the topological sort in 40 minutes and pretended to see the "house robber" question for the first time, solving it effectively.
Interviewer's Feedback
No feedback provided.
Leadership Questions:
- Tell me about a time when you took on something significant outside your area of responsibility. Why was it important? What was the outcome?
- Describe a time when you refused to compromise your standards around quality/customer service. Who was your customer? What was the result?
Round 4: DSA
Questions: Number of islands question from Leetcode. After completing it in under 15 minutes, the interviewer asked to implement it without changing the input array, which the candidate did in under 5 minutes. The interviewer then asked for an iterative approach.
Candidate's Approach
The candidate explained the efficiency of BFS in terms of memory compared to DFS, stating that BFS explores in layers while DFS goes deep. The candidate implemented an iterative BFS after discussing the differences.
Interviewer's Feedback
No feedback provided.
Leadership Questions:
- Tell me about a time when you had significant, unanticipated obstacles to overcome in achieving a key goal. What was the obstacle? Were you eventually successful? Knowing what you know now, is there anything you would have done differently?
- I don’t remember the exact question (sorry for that).
About Me
- 3+ years of experience
- Master's degree in Software Engineering
- As of writing this post, solved 857 Leetcode questions with a 1714 contest rating.
Tips
- Don’t overly emphasize Leetcode; the questions were very predictable for Amazon.
- Object-oriented design is a must; this could come in any form.
- Focus on core fundamentals for system design.
- Leadership principles are everything.