Phone Screen Round
Questions:
Given a list of transactions <from, to, amount>
, settle them and return who will pay whom, how much. (Note: It did not ask for the most optimal way to settle like in Splitwise's simplify balance feature.)
Follow-up Question:
What is the most optimal way to settle the balance?
Candidate's Approach
- Coded the solution in Java to utilize OOP principles, despite practicing DSA in C++.
- Faced multiple compilation errors due to unfamiliarity with Java data structures.
- Suggested sticking to one programming language for coding interviews.
- Provided a greedy solution for the follow-up question.
Interviewer's Feedback
Feedback for this round was positive.
Hiring Manager Round
Questions:
- Discussed projects.
- Why do you want to switch jobs?
- Behavioral questions: How do you handle conflict? How do you prioritize tasks? How do you estimate tasks in a sprint?
Candidate's Approach
No approach provided.
Interviewer's Feedback
No feedback provided.
DSA Round 1
Questions: Design a Music Player analytics service with the following methods:
void playSong(songId, userId); void addSong(songId, title); void printAnalytics();
Follow-up Question:
Add a feature to star/unstar a song for a user and get the last N favorite songs played.
Candidate's Approach
- Successfully coded the initial service.
- Struggled to fully implement the follow-up feature due to time constraints.
Interviewer's Feedback
Verdict: weak YES.
DSA Round 2
Questions: Implement a Cache to add/get/delete key/values (both strings).
Follow-up Question:
Support transactions: BEGIN, COMMIT, ROLLBACK. Users should be able to get/delete/put during a transaction, and rollback should revert all operations.
Candidate's Approach
- Implemented a class in C++ with relevant methods for cache operations.
- Used a temporary map to handle transaction data and revert changes on rollback.
- Missed two corner cases in the delete method, which the interviewer pointed out.
Interviewer's Feedback
Verdict: No. The interviewer was rude and unhelpful, making the experience challenging.
High Level Design
Questions: Design a Google News-like service that scrapes from multiple news sites. Requirements include:
- Table schema for publisher, user, category_subscription, publisher_subscription, articles, etc.
- Handle deduplication in article scraping.
- Users should be able to subscribe to categories or specific publishers.
Candidate's Approach
The round went well, and the interviewer was nice.
Interviewer's Feedback
Verdict: YES.
Final Verdict: After a day, received a Thank You email from the recruiter. Detailed feedback for coding rounds 1, 2, and system design was shared later.