Operating the systems behind a ride and delivery app means load that follows city life: rush hours, rain, the end of a concert. Apps on phones cannot be pulled back once installed, so servers must keep serving old versions. Prepare to discuss capacity for peaks you can predict, keeping one city's trouble away from another, and watching a stream of locations for delay. What to show here: steady systems through every rush hour and rainy evening. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.
How Uber hires, in its own words, and its questions for every job →
“We had to upgrade a database that served users in many time zones, so there was always someone busy. I split the work. First we added a copy running the new version and let it follow the old one. We sent a small share of read traffic to it and compared answers. When that looked good, we chose the hour with the lowest traffic across all regions, switched writes over, and kept the old database ready. I wrote each step and its way back in a shared document and told support in advance. The result was your result.”
Weak answers take the system down at night in their own time zone and forget users elsewhere.
“An engineer ran a command on production that was meant for a test system, and part of our service went down. In the review I began by saying we were there to learn why the system allowed it. I asked the engineer to walk us through what they saw on screen at each step. It turned out that both environments looked the same in the terminal, and the command asked for no confirmation. We added clear labels, a confirmation step, and tighter access. I followed each action until it was done. The outcome was your result.”
Weak answers end with a person being told to be more careful and nothing in the system changed.
“I would treat the two kinds of peak differently. Friday night is known, so capacity can be raised on a schedule before it begins, using past traffic for that city and hour. Large events can go on a calendar. Rain is sudden. For that I keep spare capacity at all times and set automatic scaling to react to request rate, which rises early, not to processor load, which rises late. New servers must start quickly, so images are kept small and ready. I would also have a list of features to switch off under pressure, so that booking a ride keeps working.”
Weak answers rely on reactive scaling alone, or keep huge spare capacity everywhere without looking at patterns.
“With phone apps, many versions are in use at once and I cannot fix an old one quickly. So the backend must always stay compatible with them. I would track which app versions still send traffic. Changes to an interface add new fields and never remove or rename what old apps read. The pipeline runs recorded requests from old versions against each new build. New behaviour ships in the app switched off, and is turned on from the server for a small share of users. If something breaks, I turn the switch off, which takes seconds and needs no app release.”
Weak answers assume everyone updates quickly, or remove fields as soon as the newest app stops using them.
“A ride is local. It needs drivers, riders and maps of one city. So I would run the core services in separate units, each serving a group of cities, with their own servers, queues and data stores. A thin routing layer sends each request to the right unit. If one unit fails from a bad release or an overloaded database, the others continue. Some things are shared, such as login and payments, so those get extra protection, and each unit should tolerate them being slow. Releases go to one small unit first, then the next, so a mistake reaches only a few cities.”
Weak answers run one shared cluster and database for every city, or forget the shared services all units depend on.
“Healthy servers can still deliver old data, so I would measure freshness directly. Each position carries the time it was created on the phone. When the matching service reads it, it records the age, and I watch the high end of those ages per city, not the average. Second, I track how many messages wait in the queue and whether that number grows. A growing backlog means readers are slower than writers. Alerts fire when age or backlog passes a limit for a few minutes. I would also send test positions from a fake driver through the full path and time them.”
Weak answers watch only machine health, or look at average delay, which hides the slowest part.
“From traces I would confirm that time is being spent waiting for the mapping service. The first danger is that our servers fill up with waiting requests and everything fails. So I would shorten the time limit on those calls and turn on the circuit breaker, so we fail fast. Then the fallback: recent routes from cache, or a simpler estimate from straight distance and average speed in that area. The arrival time will be less exact, but riders can still book. I would announce the degraded mode to support and contact the provider. Afterwards I would ask why this was not automatic.”
Weak answers wait for the provider to recover, or raise the time limits, which makes the pile-up worse.
“I like that the load here has a human rhythm. You can see a city wake up, go to work and go out in the evening in the request graphs, and a storm shows within minutes. That makes capacity and reliability work concrete. When a system fails, someone is standing outside waiting, and a driver is missing work. In my role on your project I learned to plan for peaks and to limit how far a failure spreads. I want to practice that at the scale of many cities, and learn how to keep each one independent of the others.”
Weak answers list tools and cloud products without any link to rides, cities or reliability.
No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.
ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.