Here’s my interview experience for the Uber Freight SWE 3 role.
We were given a car and N riders.
For every rider, we have two values:
L[i] — minimum number of other riders this rider is willing to travel with.H[i] — maximum number of other riders this rider is willing to travel with.If we select k riders, then every selected rider must satisfy:
L[i] <= k - 1 <= H[i]
The goal is to maximize the number of riders that can travel together.
Example:
N = 5
L = [0, 1, 1, 2, 2]
H = [1, 2, 2, 4, 4]
Answer = 3The expected solution was O(N).
The main challenge was identifying the right way to think about the constraints and avoid checking every possible k.
Design a basic file system supporting operations such as:
mkdirlsThe interviewer was mainly interested in the design and approach, rather than implementation.
We discussed:
mkdir would create a directoryls would traverse/list the contentsWe were expected to draw the entity/class diagram and explain the design.
Working code was not expected.
Design a distributed URL shortener.
The discussion covered the overall distributed architecture and how the system would work at scale.
Important areas to consider:
Overall, the rounds were a mix of DSA → LLD → HLD, with increasing emphasis on design depth and scalability.
Difficulty: DSA was mainly about finding the optimal observation, LLD focused on clean object modeling, and the final round tested distributed-system fundamentals and scalability.
I wanted to discuss on compensation part, do you guys any idea of how much they offer?