Uber Senior+ Machine Learning Engineer Interview Experience — Withdrew After a Possible L5A-to-L4 Downlevel

Uber·Machine Learning Engineer·Apr 2026
Technical ScreenSenior+Withdrewmedium

I interviewed for a Sr MLE / MLE role. The whole process was pretty short — in the end, after HR indicated I might get downleveled from L5A to L4, I decided not to move forward, so this is basically a withdrawal report.

The first round was mainly a project deep dive. It opened with self-introductions, then the interviewer asked me to walk through a recent representative project. I talked about a GenAI/agent-related project — business background, system design, model/data pipeline, evaluation, and the tradeoffs after launch. After hearing it, the interviewer said it might not be a great match for their team's direction, because this team's opening is more pricing / marketplace / growth modeling. I felt a bit awkward at that point, because plenty of teams these days are also doing agent or LLM-related work, but they probably wanted to hear about pricing, causal inference, ranking, forecasting, experimentation/metrics — more business-facing ML projects.

The coding question didn't come with a LeetCode number. Roughly:

You're given a black-box convex function F(x) — you can only get the function value at a point by calling F(x). The input is the function F and a search interval [a, b]; the task is to find the x that minimizes F(x) (or the minimum value) within that interval. You can assume F is convex/unimodal over the interval.

I used ternary search. Each round:

m1 = left + (right - left) / 3
m2 = right - (right - left) / 3

compare F(m1) and F(m2):
  if F(m1) < F(m2): the minimum is on the left or in the middle, right = m2
  else: the minimum is on the right or in the middle, left = m1

loop for a fixed number of iterations, or until the interval is small enough,
then return (left + right) / 2 as the approximate argmin, and call F(x) to get the minimum value.

Complexity:
Time: O(k), where k is the number of iterations; if written in terms of precision epsilon, it's O(log((b-a)/epsilon))
Space: O(1)

The interviewer didn't push hard on optimizing it, since a black-box function has no gradient and you can't differentiate it directly, so ternary search is the natural approach. Extra points worth discussing: for a discrete integer domain you need to be careful about the termination condition and brute-force check the remaining small interval at the end; for a continuous domain, you control precision with epsilon or a fixed number of iterations.

Overall impression:

This round didn't feel like pure LeetCode grinding — it was more like they check project fit first, then give you an optimization/numerical-search style algorithm question. My takeaway: if you're interviewing with a pricing team, it's probably better to prepare a project deep-dive story that's closer to pricing / prediction / experimentation / business metric optimization, rather than framing everything purely from a GenAI/agent angle.

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Uber
Role
Machine Learning Engineer
Level
Senior+
Rounds
Technical Screen
Outcome
Withdrew
Difficulty
medium
Interview date
Apr 2026
Questions from this interview
2 questions

Real Uber interview experiences

First-hand reports from Uber candidates — the rounds, the questions they were asked, and how it went.

All 53 Uber interview experiences