Got this in an Uber L4 in-person LLD round. Unlike system design, this was about clean, RUNNING code - not boxes and arrows.
The problem: Design Uber Black. Focus on cab allocation logic — register drivers, request rides, allocate the nearest available cab matching the type, handle concurrent requests without double-booking a driver.
What made it interesting:
Key learning from the candidate: MASTER ONE LANGUAGE for LLD rounds. The interviewer let them check syntax but it caused context switches that cost time.
Full question with requirements, design patterns, and follow-ups (surge pricing, driver rejection, 100K driver scale):
https://beyondleet.dev/questions/design-cab-hailing-service-lld
Full Uber 5-round experience (first 3 were in-person):
https://beyondleet.dev/experiences/uber-sde2-bangalore-2026
For the concurrency part - would you use synchronized blocks, a concurrent map, or optimistic locking for driver assignment? Curious what others prefer.