Had interview for SWE II (Backend) role at Uber for Grocery org (apparently 2nd biggest vertical by gross revenue for Uber after Rideshare)
Ended up getting an offer
Process
OA: Codesignal style. It was pretty much GCA. First two easy, Q3 tricky and confusing, but Q4 algorithmic
Recruiter Phone Screen: Pretty chill and vibe check call. Do read the job posting and understand company mission. Sound interested in the role
Coding 1 Onsite: 60 mins DSA round, but no obscure leetcode. You have a 2D MxN array. Each cell represents the number of open restaurants in the spot (r, c). You need to implement this interface:
openRestaurant(r, c): Open a restaurant at location (r, c)countOpenRestaurants(r, c): Number of open restaurants at location (r, c)hasOpenRestaurant(r, c): Are there open restaurants at location (r, c)countDeliveryZones(): The meaty question. A delivery zone is defined as a clustering of open restaurants where directionally (up, down, left, right), you have open restaurants. I got a working solution using DFS/BFS, but interviewer wanted a more optimal solution. Turns out Uber really likes to ask about Union-Find and interviewer was super uncooperative and didn't want to offer any hint like you would in the real worldscheduleMeeting(startTime, endTime) and return the room for your meeting. The implementation was not too bad, but the followups were interesting:Overall Thoughts