Uber India-Style Machine Coding Round: Format, Tips & Practice Problems
Written and reviewed by Sahil Srivastav
Dispatch services combine real-time state, deterministic matching, and events that can arrive in an inconvenient order. Rounds in the style of Uber India use that combination to test whether a candidate can build a small service with clear ownership and race handling.
The guide stays at style level and uses Gronex originals for practice. It focuses on the decisions a reviewer can inspect in a short working session.
What a Uber India-style machine coding round looks like
Expect a 90-minute problem such as driver matching, trip lifecycle, surge pricing, or cancellation handling. The required output is usually a runnable in-memory service rather than a production dispatch cluster.
The central question is what happens when two commands see the same driver or trip. A deterministic selection rule and one atomic assignment boundary make the answer concrete.
Follow-ups often add a timeout, a second pricing rule, or a cancellation racing assignment. Injecting time and keeping transitions explicit makes those changes testable.
How you’re evaluated
Deterministic matching
Candidate selection has explicit ordering and tie-breaks.
Trip state integrity
Illegal transitions and terminal states are rejected consistently.
Race resolution
A driver or trip cannot be assigned twice when commands overlap.
Testable time
Timeouts and surge windows use an injected clock or equivalent seam.
Common mistakes that fail this round
- Relying on map iteration order for the nearest driver.
- Leaving assignment and availability as separate, racy mutations.
- Allowing a cancelled trip to be completed by a late event.
- Calling wall-clock time directly throughout the service.
- Building location infrastructure instead of the stated matching core.
Quick tips for the room
- Write the transition table first.
- Define who owns driver availability.
- Make ties deterministic.
- State the winner of every race.
How to prepare
Implement a select–assign–release loop with deterministic tie-breaking, then add a cancellation race test.
Use the linked repositories to practise state machines and concurrency in code, not only in diagrams.
Practice problems in the Uber India-style round format
Each is a real backend repository with a failing test suite — the same working-code standard the round applies. Open the brief and read the full problem, no signup required.
Surge Pricing & Fare Calculation
Time-windowed pricing with exact fare rules.
Open the challenge →FAQ
Were these Uber India questions?
No. They are Gronex originals in the style of dispatch rounds. Gronex is not affiliated with Uber.
Do I need geospatial infrastructure?
No. Represent location simply and focus on the stated selection and consistency rules.
How do I explain concurrency?
Name the shared invariant, the atomic boundary, and the deterministic winner when commands overlap.
Should pricing be a separate service?
For a time-boxed build, a focused pricing policy is enough; discuss extraction only after the core works.
Related
Gronex is not affiliated with, endorsed by, or sponsored by Uber India. All company names and trademarks belong to their respective owners. The problems on this page are Gronex originals written in the style of such interview rounds — not actual interview questions from Uber India.