Interview experiences

Uber Software Engineer Interview in New York: Phone Screen to Onsite

UberSoftware Engineer·New York·Interviewed May 2018No offer

Updated July 17, 2026

This account covers a Software Engineer interview loop at Uber for a role based in New York. The process began with a technical phone screen focused on data structure fundamentals and backend scalability topics, followed by an onsite loop made up of four back-to-back rounds.

The candidate described the pace of the onsite as stressful but the overall experience as positive, and ultimately did not receive an offer. The breakdown below reflects the rounds and questions as reported in the original write-up.

How the process went

  1. Technical Phone Screen

    A phone-based round covering data structure complexity, linked list concepts, and backend scalability topics such as reducing database calls and speeding up API responses, before an onsite invite followed.

  2. Onsite Interview

    A single onsite visit made up of four consecutive rounds: a whiteboard coding round, a behavioral round with an engineering manager, an architecture/system design round, and a second coding round.

  3. Outcome

    The candidate described the loop as stressful but the overall experience as positive; the final result was a rejection.

Technical Phone Screen

Data structure fundamentals and backend scalability concepts

  • Time and space complexity of HashMap, ArrayList, and TreeMap
  • Differences between a singly linked list and a doubly linked list
  • Approaches to reducing database calls, such as sharding and memcached-style caching
  • Ways to speed up API calls, including in-memory data grids
  • General questions about microservices architecture

Onsite Round 1: Whiteboard Coding

Algorithmic problem solving on a whiteboard

  • Write an algorithm to print all letter combinations that a sequence of phone-keypad digits could represent (the Letter Combinations of a Phone Number problem)

Onsite Round 2: Engineering Manager

Behavioral and cultural fit

  • Describe conflicts encountered within your team and with people outside your team
  • What are your strengths and weaknesses?

Onsite Round 3: Architecture Interview

System design for a large-scale consumer service

  • Design a food-delivery service similar to Uber Eats
  • How would you implement caching for a system like this?
  • How would you approach geolocation-based user tracking?
  • How do node clustering and database replication factor into the design?

Onsite Round 4: Coding Interview

Data structure design with runtime constraints

  • Design an LRU cache that supports get and put in O(1) runtime

Key takeaways

  • Expect the phone screen to probe practical backend trade-offs (reducing DB calls, caching, API latency) alongside basic data structure complexity, so review distributed-systems fundamentals before the call.
  • The onsite architecture round asked for a fairly complete system design (an Uber Eats-style service), including caching, geolocation tracking, and replication, so practicing a structured design framework can help organize the answer.
  • Classic data structure problems, such as the LRU cache and letter combinations, still appeared in the coding rounds, so keep core algorithm patterns fresh alongside system design prep.
  • The engineering manager round focused on conflict-resolution and self-assessment questions, so having concrete examples of team conflicts ready is worth the preparation time.
  • Four onsite rounds back-to-back were described as stressful, so planning for pacing and short breaks between rounds may help maintain focus through the full loop.

Practice a Uber interview

Rehearse out loud against the kinds of questions in this story — with an AI interviewer that asks follow-ups.

Practice this interview

Source

The questions and process facts come from the candidate's public write-up, linked below. The retelling above is our own summary.

Candidate's public write-up on LeetCode Discuss