Uber L4 interview experience | Accepted
Summary
I interviewed for an L4 position at Uber and was ultimately accepted after multiple rounds covering coding, system design, and behavioral aspects.
Full Experience
I had my interview experience for an L4 role at Uber with 5.5 years of experience. The process involved several rounds: Screening, DSA, LLD, HLD, and a Hiring Manager round.
Screening Round
This round focused on a LeetCode problem. I was given the 'Find The Closest Palindrome' problem and I was able to solve it successfully.
DSA Round
The main problem involved a grid with police stations, a thief, and a bank. Police stations patrolled within a 'k' Manhattan distance, and I had to determine if the thief could reach the bank without encountering police. My initial approach combined multi-source BFS to identify safe zones and then DFS to find a path. The interviewer then presented a follow-up: what if each police station had a different 'k' value? For this, I proposed using Dijkstra's algorithm. I was able to quickly code both approaches, which impressed the interviewer.
LLD Round
I was asked to design a data structure with time-to-live (TTL) functionality, receiving (key, timestamp) pairs in increasing order. The requirements included counting all active keys, active keys for a specific key, and standard CRUD operations. My initial idea was to use a Map<String, Queue<Timestamp>> and clean expired keys on each function call. The interviewer suggested an optimization using a global Queue<Pair> (where Pair = (timestamp, key)) to poll expired elements more efficiently, updating counts with a Map<String, Integer> and a global total counter. This improved the average-case complexity.
HLD Round
This round was about designing a recommendation system for the Amazon homepage. I framed it as a Top-K problem, explaining how I'd track metrics like item view and buy counts using Flink, maintain sorted sets, and use them for real-time recommendations. I realized afterward that I struggled with scale estimations, didn't provide enough diverse metrics (beyond views/buys, I only briefly mentioned comments/ratings), overlooked the need for country-specific recommendation sets, and my Redis cache approach for different metrics lacked extensibility.
Hiring Manager (HM) Round
This round consisted of generic behavioral questions, covering my past experiences and how I would handle various hypothetical situations.
Overall, I received a 'Strong Hire' for DSA and HM, 'Lean Hire' for LLD, and 'Hire' for HLD, which led to an offer.
Interview Questions (6)
There is a grid with police stations, 1 thief, and 1 bank. Every police station can patrol within k Manhattan distance. You need to determine if there is any path for the thief to reach the bank without encountering the police.
Follow-up: What if the value of k is different for every police station?
Design a data structure with time-to-live (TTL) where you receive (key, timestamp) pairs (in increasing order). You need to provide: a) Count of all active keys b) Count of active keys for a particular key c) CRUD functions
Design a recommendation system for the Amazon homepage.
Generic behavioral questions on past experiences and some hypothetical situations.