Company Interview Questions · Big Tech

Meta: Machine Learning Engineer

❓ 6 questions🏢 Meta🆕 Recent reports

Meta: Machine Learning Engineer Interview Experiences (2025). Rounds, real reported questions and model answers, compiled from public candidate reports (sources at the end). Practice mode hides every answer: say your answer first, press Show answer, then rate yourself. Use 🔁 Review again to build your revision list and 🎲 Random question for a quick drill.

About this interview

Compiled from public candidate reports for Meta Machine Learning Engineer roles: London (September 2025, offer received and declined) and Seattle (July 2025; 3 of 4 interviewers reportedly voted to hire, no offer). The questions are paraphrased, and the model answers are written by EasyLearnSpace.

Role Machine Learning Engineer (E4/E5)
Rounds HR call → coding round 1 (2 problems) → coding round 2 (2 harder problems) → behavioural → ML system design
Reported questions Implement an LRU cache; design a news-feed ranking system; "have you maintained an end-to-end ML pipeline in production?"
Outcome London: offer (declined); Seattle: no offer despite mostly positive votes
Lesson Every round counts: one weak signal can sink a strong loop

01Rounds at a glance

02Questions and model answers

Q1
Implement an LRU cache with O(1) get and put.
from collections import OrderedDict

class LRUCache:
    def __init__(self, capacity: int):
        self.cap, self.d = capacity, OrderedDict()
    def get(self, key):
        if key not in self.d: return -1
        self.d.move_to_end(key); return self.d[key]
    def put(self, key, value):
        if key in self.d: self.d.move_to_end(key)
        self.d[key] = value
        if len(self.d) > self.cap: self.d.popitem(last=False)
  • Mention the classic version: a hash map + doubly-linked list (move a node to the head on access, evict the tail), which interviewers may ask you to write without OrderedDict.
Q2
Design a ranking system for a news feed.
  • Goal: maximise long-term meaningful engagement (not just clicks), with integrity constraints.
  • Stages: 1. Candidate generation: recent posts from friends, groups and pages plus recommended content (two-tower embeddings, ANN), giving thousands of candidates. 2. Light ranker: a cheap model trims to hundreds. 3. Heavy ranker: a multi-task deep model (DLRM-style) predicts P(like), P(comment), P(share), P(hide/report) and dwell time, combined with a value function of weighted predictions. 4. Re-ranking: diversity, freshness, creator fairness, integrity filters, ad insertion.
  • Features: user–author affinity, content embeddings, recency, engagement velocity, context (device, time).
  • Training: logged impressions; handle position bias; daily or online updates.
  • Evaluation: offline NDCG and AUC per task → online A/B on engagement and guardrails (reports, time well spent).
  • Serving and scale: feature store, caching, under 200 ms end to end; monitor drift and feedback loops.
Q3
Have you maintained an end-to-end ML pipeline in production? What did "maintaining" involve?

Answer (show operational ownership):

  • Data: scheduled ingestion with data-quality checks (schema, nulls, distributions) and alerts.
  • Training: automated weekly retraining, experiment tracking, and an evaluation gate against the current model.
  • Deployment: model registry, canary release, rollback.
  • Monitoring: feature drift (PSI), prediction drift, latency, business KPIs, and label-delayed performance tracking.
  • Incidents: "An upstream logging change broke a feature. Our drift alert fired, we rolled back within an hour, and we added a data contract."
  • Interviewers want evidence that you owned it after launch, not just trained a notebook model.
Q4
Coding: find the k most frequent elements.
from collections import Counter
import heapq

def top_k(nums, k):
    return [x for x, _ in heapq.nlargest(k, Counter(nums).items(), key=lambda t: t[1])]
  • O(n log k) with a heap. Bucket sort by frequency gives O(n). Discuss ties and streaming variants (Count-Min Sketch).
Q5
How do you handle position bias in ranking training data?
  • Users click higher positions more regardless of relevance, so naïve training learns "position = relevance".
  • Fixes:
  • Add position as a feature during training, and set it to a constant at serving.
  • Inverse propensity weighting using estimated examination probabilities (from randomisation or result swaps).
  • Click models such as cascade or DBN.
  • Small exploration traffic to collect less-biased data.
Q6
Behavioural: tell me about a time you took ownership beyond your role.

Answer (STAR):

  • Situation: "Our model's online gains disappeared after launch; nobody owned the logging pipeline."
  • Action: "I traced it to a mismatch between training and serving features, wrote a parity test, and set up a weekly cross-team review with the data platform team."
  • Result: "We recovered the +2.1% engagement lift, and the parity test caught two later issues before launch."
  • Meta values move fast with ownership and impact backed by metrics.

03How to prepare for Meta

Sources

Created by Ajeetkumar