Meta·Data Scientist·Technical Phone Screen
Sep 2025
Meta DS interview with a meaty ambiguous product analytics question that required defining cohorts, writing multi-step SQL, and then extending it to stratification and bias discussion. The whole thing was basically one long question dressed up in four parts, and it got progressively harder to keep track of what you were supposed to be solving.
- You're asked whether existing users are more active than new users over the last 28 days. Before writing any SQL, propose two reasonable and mutually exclusive definitions for 'existing' vs 'new' users, and two defensible definitions of 'active'. Walk through the pros and cons of each, then pick one pair to move forward with.
- Using the provided schema and sample data, write SQL that labels users as new or existing, computes a 7-day rolling active rate and average daily events per user over the last 28 days, adjusts for partial observation windows for users who signed up within the window, and outputs a table with date, cohort, active_users, total_users_observed, active_rate_7d, and avg_events_per_user. Use window functions and avoid double-counting.
- Extend your query to stratify results by country, then produce a cohort-level weighted average that controls for country mix differences between the new and existing cohorts.
- Name two bias risks in this analysis and one SQL-side mitigation you actually implemented in your query.
“This part felt manageable but I second-guessed myself on the 'mutually exclusive' constraint.” The rest of the author's notes on Data Scientist interview at Meta, Technical Phone Screen round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post