I finished the Uber OA and did the phone screen too, so sharing both. The OA was on HackerRank, camera required.
First question: a Hard DP problem, a variant of a well-known Jump Game problem where the jump-step rule was changed to a prime-number condition. I got stuck for a bit but eventually worked it out.
Second question: Pipeline Throughput, solved with binary search on the answer. You're given a serial pipeline where the overall throughput is the minimum across all the services. Scaling up a service x times changes its throughput to t[i] * (1 + x), at a cost of x * cost[i], with a fixed total budget. Binary search on the target throughput, and for each service compute the minimum number of scale-ups needed as x = ceil(target / t[i]) - 1, then sum the cost and check whether it's within budget — the monotonicity is pretty obvious.
The phone screen problem itself was manageable, done in 25 minutes. Then we spent over 10 minutes on tradeoffs: when to clear the queue, whether there's a background-thread way to handle it, and how to think about stale data. The problem itself wasn't that hard, but the tradeoff discussion went on for a while — it felt more important than the problem itself, so it's worth thinking through those angles ahead of time.
I'd seen both OA problems before from grinding — they really were repeat questions. I get the sense that after you finish the coding part, Uber phone screens also get into tradeoff discussions. I didn't expect it to go on for this long, so it's worth preparing for that in advance.
Discussion
Loading comments…