← Uber Interview Insights

Uber·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

Uber system design round for a software engineering role, and this one was a full-on design problem around room allocation. Pretty dense question with a lot of moving parts, more than I expected for a single session.

Questions Asked (1)

Q1

Design a room allocation service that takes a meeting request (time window, duration, capacity, required equipment, location) and returns a ranked list of available rooms. Walk through your scoring function, data sources, how you'd tune the weights, safeguards against certain teams always getting the good rooms, and how you'd evaluate the system online and offline including an A/B testing plan.

System DesignA/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

This question is basically five questions stapled together.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and defining the scoring function with weighted factors like capacity fit, equipment match, location proximity, and availability. Then discuss data sources, weight tuning via offline evaluation and feedback loops, fairness safeguards, and a comprehensive evaluation plan with offline metrics and online A/B testing.

Pro tip: Emphasize fairness by incorporating randomization or diversity constraints in ranking, and propose a multi-armed bandit approach for online weight tuning to balance exploration and exploitation.

1. Clarify requirements and constraints

Ask about scale, real-time constraints, data freshness, and business priorities (e.g., fairness vs. utilization). Define the output format and ranking criteria.

2. Design the scoring function

Propose a weighted sum of factors: capacity fit (penalize over/under), equipment match (binary or weighted), location proximity (distance or floor), and availability. Discuss normalization and handling missing data.

3. Identify data sources and architecture

List sources: room inventory, calendars, equipment database, user profiles, historical usage. Sketch a high-level architecture: API gateway, scoring service, cache, and database.

4. Tune weights and ensure fairness

Explain offline tuning via grid search or learning-to-rank using historical data. For fairness, propose constraints like max bookings per team per week, randomization, or diversity in top results.

5. Evaluate offline and online with A/B testing

Offline: use metrics like NDCG, precision@k, and booking success rate on held-out data. Online: A/B test with metrics like booking conversion, utilization, user satisfaction, and fairness metrics; discuss guardrails and experiment duration.

Key Points to Mention

  • Weighted scoring with factors: capacity fit, equipment match, location, availability, and user preferences
  • Data sources: room inventory, calendars, equipment DB, user profiles, historical bookings
  • Weight tuning via offline evaluation (e.g., grid search, learning-to-rank) and online feedback
  • Fairness safeguards: quotas, randomization, diversity constraints, or rotation policies
  • Offline metrics: NDCG, precision@k, recall, booking success rate
  • Online A/B testing: define success metrics (conversion, utilization, satisfaction), guardrails, and fairness monitoring

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.