Pipeline Architectureonsite pipeline architecture· L72025
Design a cost-efficient analytics architecture to ingest, store, and query 600 million daily Kafka clickstream events with a two-year retention period
Architect an end-to-end pipeline: Kafka consumers for ingestion, partitioned columnar storage (Parquet/ORC on S3/GCS), tiered storage strategy (hot/warm/cold) for cost efficiency, query engine selection (Presto/Trino/Athena) for ad-hoc analytics. Must handle 600M events/day with 2-year retention while keeping storage costs manageable.
Data Modelingonsite data modeling· L62025
Design a relational database schema to record rides between riders and drivers, including table structures and how they join together
Design core tables (riders, drivers, vehicles, trips, payments) with well-defined foreign keys. Explain one-to-many relationships (driver to trips, rider to trips), how vehicle assignment works, and how the schema supports both real-time operational queries and historical analytics. Discuss indexing strategy for high-throughput queries.
Pythononsite python· L52025
Given a list of meeting time intervals, find the minimum number of rooms required so no two overlapping meetings share a room
Write a function min_rooms(meetings) where each meeting is a tuple (start, end) with start < end. Intervals are half-open: a meeting (0, 30) occupies times [0, 30). A meeting ending at time 10 does NOT conflict with one starting at time 10. Return the minimum number of rooms needed so no two overlapping meetings share a room.
Example:
meetings = [(0, 30), (5, 10), (15, 20)]
Output: 2 (meetings (0,30) and (5,10) overlap)
meetings = [(7, 10), (2, 4)]
Output: 1
meetings = [(1, 5), (2, 6), (3, 7)]
Output: 3 (all three overlap at time 3)
meetings = [(0, 5), (5, 10)]
Output: 1…
SQLphone screen sql· L42023
Uber DE phone screen: given 5 related tables, write SQL to aggregate across them; questions are wordy but not tricky; window functions needed for some aggregations
mixedphone screen sql· unknown2025
Uber Data Engineer - SDE 2 role
I took the interview in Jan 2024; so i know this is late and I apologize.\n\nRound 1 was just a screening round; asked about compensation, location\n\nRound 2) Techinical Screen -> very simiklar to https://leetcode.com/problems/minimum-path-sum/description/\n\nFinal Round)\n\nCoding Round #1: It was a combination of https://leetcode.com/problems/merge-intervals/description/ and binary search. I did not do well in this; partly because I just did not understand the interviewer\'s accent. The interviewer also gave no hints, but I guess thats just the market and I need to improve…
Pipeline Architectureonsite pipeline architecture· L52025
Design an end-to-end data pipeline that ingests daily raw files from multiple sources and prepares clean, reliable datasets for predicting city-wide bicycle rental demand.
The problem tests end-to-end pipeline design including: source ingestion (daily raw CSV/JSON files from multiple city providers), data quality checks, normalization, feature engineering for ML model (weather, time of day, location features), output format optimized for a prediction model. Expected to discuss orchestration (Airflow/Dagster), storage layers (raw, cleaned, feature), monitoring, and backfill strategy. Interviewer follows up on handling missing source files and schema drift across providers.
Data Modelingonsite data modeling· L62025
Design a relational database schema recording rides between riders and drivers, including entities for riders, drivers, vehicles, and trips with appropriate foreign key relationships.
Data modeling design question from Uber Data Engineer onsite. Candidate must define entities: Riders (rider_id, name, email, signup_date), Drivers (driver_id, name, license_number, rating), Vehicles (vehicle_id, driver_id FK, make, model, year, license_plate), Trips (trip_id, rider_id FK, driver_id FK, vehicle_id FK, pickup_location, dropoff_location, start_time, end_time, fare, status). Key relationships: driver 1:M vehicles, rider 1:M trips, driver 1:M trips. Discussion of separating fact tables (trips, payments) from dimension tables, stable linking keys, and preventing metric duplication…
Pythononsite python· L52025
Given a list of named events with start and end times, find all pairs of events that overlap
Write a function find_overlaps(events) where each event is a tuple (name, start, end). Return a list of tuples containing the names of all pairs of events that overlap in time. Two events overlap if one starts strictly before the other ends and vice versa. Events that share only a boundary point (one ends exactly when another starts) do NOT overlap.
Example:
events = [('A', 1, 5), ('B', 3, 7), ('C', 6, 9), ('D', 8, 10)]
Output: [('A', 'B'), ('B', 'C'), ('C', 'D')]
events = [('X', 1, 2), ('Y', 3, 4)]
Output: []
events = [('P', 1, 10), ('Q', 2, 3), ('R', 4, 5)]
Output: [('P',…
SQLonsite sql· L52025
Write a SQL query to randomly select a driver using weighted probabilities: given a table with a weighting column, each driver's selection probability should be proportional to their weight.
Schema: drivers(driver_id, driver_name, weight). The weighted random selection requires computing a cumulative weight sum using a window function, then comparing a random number (drawn uniformly between 0 and total_weight) to the cumulative boundaries. Approach: SUM(weight) OVER (ORDER BY driver_id ROWS UNBOUNDED PRECEDING) to get cumulative sums, then filter for the row where the random value falls within the bucket. Tests: window functions, RANDOM(), CTE usage. Used to improve Uber rider-driver matching systems.
Pipeline Architectureonsite pipeline architecture· L52024
Design the backend of a near real-time dashboard showing trending dishes in a city
Uber Data Engineer SDE2 final round, Jan 2024. System design question: design backend for a near real-time dashboard showing which dishes are trending in a given city. Expected to discuss data ingestion pipeline, aggregation strategy, storage layer, and serving layer for near-real-time updates. Candidate felt they did well. Part of a final loop including coding rounds (merge intervals + binary search, course schedule graph problems) and behavioral. Candidate rejected overall.