cswork / libraryOpen practice workspace

Interview experiences · Airbnb

Airbnb Senior Machine Learning Engineer Interview Experience — Four ML System Design Rounds, Rejected on Calibration

RejectedOnsiteInterviewed 2026-04

Four rounds, overall leaning heavily into ML system / ranking / marketplace scenarios. Not especially rote-memorization heavy, but they really value business sense and decision making. Two weeks later I got a curt rejection. Round 1: ML Experience / Behavioral + Technical This round mainly revolved around past projects, with a lot of focus on tradeoffs and decision making. I talked about a projec…

Four rounds, overall leaning heavily into ML system / ranking / marketplace scenarios. Not especially rote-memorization heavy, but they really value business sense and decision making. Two weeks later I got a curt rejection.

Round 1: ML Experience / Behavioral + Technical

This round mainly revolved around past projects, with a lot of focus on tradeoffs and decision making.

I talked about a project related to recommendation/prediction, and the interviewer kept pushing with follow-ups:

  • Why did you choose this modeling approach?
  • Why not use a more complex model?
  • How do you trade off precision / recall / latency / infra cost?
  • What do you do when the offline metric and the online metric disagree?

One of the discussion points was threshold tuning. My answer was:

First find candidate thresholds offline using the ROC / PR curve, then use A/B testing to look at the final business metrics — conversion, retention, CTR, booking rate, etc. Because different thresholds are essentially switching between different points on the precision/recall tradeoff, you ultimately need an online experiment to decide.

Another discussion point was FM (Factorization Machine) vs embedding + DNN.

My answer:

  • FM is better at low-order sparse feature interactions, trains stably, and is more interpretable
  • but it has limited ability to learn long-term behavior patterns, complex nonlinear interactions, and sequence patterns
  • embedding + DNN more easily learns high-dimensional dense representations, as well as long-term preference / semantic similarity
  • especially when user-item interactions are very complex, deep models usually perform better, but the cost is worse training cost, serving latency, and debuggability

Round 2: ML Design — Family Friendly Filter / Classifier

The prompt was roughly:

Build a "family friendly" filter/classifier for Airbnb listings, so users can filter for listings suitable for families to stay in.

I roughly went through it like this:

  1. Define problem
  • binary classification
  • the objective can be to maximize booking conversion / satisfaction while reducing bad experiences
  1. Label construction
  • whether the user stayed with children
  • whether keywords like family / kids / stroller / crib appear in reviews
  • the user's post-trip rating
  • complaint / refund signals
  1. Features
  • listing metadata: bedroom count, kitchen, washer/dryer, crib, safety equipment
  • image features
  • review text embedding
  • host historical signals
  • neighborhood safety / nearby attractions
  1. Model
  • baseline: XGBoost / logistic regression
  • advanced: a multimodal model combining text + image embeddings
  1. Evaluation
  • precision / recall / F1
  • calibration
  • online booking conversion

The interviewer also asked:

  • What if hosts deliberately mislabel their listings?
  • How do you avoid unfair filtering?
  • How do you handle cold start?

Round 3: ML System Design — User Embedding + Two-stage Semantic Search

This round felt the most like Airbnb's core ranking / retrieval problem.

The prompt was roughly:

Design a user embedding + two-stage semantic retrieval/ranking system to find, from listings, the results a user is most likely to book, and maximize the booking conversion rate.

The rough structure of my answer:

  1. Two-stage architecture
  • Stage 1: retrieval
    • ANN semantic search
    • dual tower / two-tower embedding
    • retrieve top-K listings
  • Stage 2: ranking
    • a deeper ranking model
    • combine semantic relevance + business metrics
  1. User embedding
  • booking history
  • clicks
  • wishlist
  • long-term vs short-term preference
  • sequence modeling
  • contextual features (location/time/group size)
  1. Listing embedding
  • text description
  • amenities
  • image embedding
  • reviews
  • price/location
  1. Objective
  • CTR
  • booking conversion
  • long-term satisfaction / retention

The interviewer really dug into position bias.

My answer included:

  • top-ranked items are more likely to be clicked, which doesn't mean they're actually more relevant
  • you can use randomization buckets / exploration traffic to collect unbiased data
  • IPS (inverse propensity scoring)
  • debias click labels
  • counterfactual learning to rank
  • you can also combine stronger supervision signals like dwell time / booking / long-click

This round's discussion ran fairly long — I got the sense they really cared about hands-on marketplace ranking experience.

Round 4: Coding

The algorithm question was a Coin Change variant, except the input wasn't integers, it was floats.

Roughly like this:

Given some coin denominations (like 0.25 / 0.5 / 1.0), determine whether you can combine them to reach a target value, or find the minimum number of coins.

The main trap was float precision.

I initially just did the DP directly with floats, and later the interviewer pointed out the precision issue.

The fix afterward:

  • uniformly scale, e.g. multiply by 100 to convert to integers
  • then do standard coin change DP / BFS

Complexity:

Time: O(amount * num_coins)
Space: O(amount)

Overall impression:

Airbnb's Sr MLE interview leans heavily toward business ML and ranking / retrieval / marketplace optimization — it's not pure rote-memorization, and it's not pure LeetCode either. A lot of the questions were testing:

  • whether you've actually worked on a live ML system in production
  • whether you understand business metrics
  • whether you can handle bias / feedback loops / exploration-exploitation
  • whether you know retrieval + ranking architecture

Coding actually wasn't the hardest part, but they deliberately throw in some production nuance (like float precision).

In the end I got a reject two weeks later — probably my overall calibration didn't hit the Sr bar. I feel like my retrieval / ranking / marketplace ML experience is still a bit weak.

Comments

Nothing here yet.

Join in on CSWork →