wrote down my notes the day after my Meta DS loop, sharing them now that I have the outcome (got an offer, L5 DS).
Meta's DS interview is different from most because it's genuinely three separate skill areas and they don't conflate them.
SQL round: this is the most consistent part across every DS loop at Meta that I've heard about. two or three questions, increasing complexity. the first is usually a warm-up: a join, a GROUP BY, maybe a window function. the harder ones involve things like: "find the second highest X per group," or "users who did A but not B within 7 days of signing up." they care about correctness and efficiency. using CTEs is fine and honestly makes your logic clearer to walk through.
one pattern I saw twice: they give you a schema with gaps and ask you to infer what the data means. read the table names carefully, ask clarifying questions.
product case round: this is the metrics/product sense round. they'll say something like "we launched a new feature for Reels, what metrics would you track?" or "engagement on Stories dropped 8%, what's going on." same structure as the PM analytical round but they want you to go deeper on statistical validity: sample size concerns, selection bias, p-hacking risks. I mentioned that a 1-week drop might not have enough data to distinguish signal from noise and that landed well.
stats / experimentation round: this is where Meta separates itself from most other DS interviews. they expect real A/B testing knowledge: how to handle low-power tests, what to do when network effects violate SUTVA, how to handle novelty effects in a recommendation system. I was asked how to design an experiment where users are social and you can't just randomize individually. answer: cluster randomization or using an ego-network holdout.
prep that helped: SQL: Mode Analytics practice problems, plus a mock where I spoke out loud while coding stats: the classic Kohavi et al. trustworthy online controlled experiments book is overkill but worth it case: practice telling a story with a metric drop, not just listing possible causes