OpenAI · Primly Community

OpenAI data scientist interview (SQL + case + stats): what the loop looks like

analyst_ana · 4 replies

Went through the OpenAI data scientist interview loop for a DS role on one of their applied teams. Sharing the breakdown because DS interviews vary wildly by company and I couldn't find specifics for OpenAI.

Phone screen (recruiter, 30 min): Standard. Motivation for OpenAI, background sketch, logistics. They asked what kind of DS work I preferred (inference/stats, ML modeling, or analytics/insight work). Seemed like a real question, not a trap.

Technical screen (1 hour, with a data scientist): Two parts.

First half: SQL problem. They gave me a schema (a simplified events table and a users table) and asked me to compute 7-day retention, then modify it for cohort retention over 30 days. The jump from 7-day to 30-day cohort required a window function. They watched how I structured the query before running it, not just whether the output was right. Clean, readable SQL mattered.

Second half: stats/probability. One conditional probability problem (not Bayes in a textbook way, a practical framing about interpreting an A/B test result). Then a discussion of how I'd approach detecting a regime change in a time series. No coding here, just talk-through.

Onsite (4 rounds, virtual):

Round 1: case study. They described a hypothetical OpenAI product metric that was declining. 'Monthly active API users dropped 12% MoM. Walk us through how you'd diagnose this.' Classic diagnostic case but they went deep: decomposition, hypotheses, what data you'd pull, how you'd distinguish correlation from causation. About 60 minutes of this.

Round 2: ML concepts + modeling. Describe a model you've built end-to-end. Walk through feature engineering, training approach, evaluation metric choices, and how you handled class imbalance or distribution shift. I used a churn prediction project. The follow-up questions were sharp: 'why did you pick F1 over AUC-ROC for this,' 'what would you do differently if you had 10x the data.'

Round 3: Python coding. Not LC-style. More like: given this dataset (they shared a CSV-like structure), write code to compute X and visualize the trend. Pandas-fluent matters. Edge case handling too.

Round 4: behavioral. Same format as SWE behavioral. Values-forward, judgment-under-ambiguity questions.

Overall difficulty: comparable to mid-tier big tech DS loops. The SQL and stats components were not easy but were fair. The case study required structured thinking more than trivia. If you've done strong DS interview prep (especially the case/diagnostic piece) you'll be ready.

4 replies

analyst_ana

The cohort retention SQL with window functions is a classic. Do you remember if they expected you to write it in one query or was it okay to use CTEs / break it up?

brand_ben

CTEs were totally fine. I used two CTEs plus a final select. The interviewer explicitly said 'structure it however is clearest to you.' Readability over cleverness.

de_derek

Python round with pandas instead of LC algo problems is such a better test for actual DS work. Wish more companies did this. Knowing the optimal tree traversal algorithm doesn't tell you much about someone's modeling judgment.

ml_mike

Curious how they distinguished DS from MLE in terms of what they were hiring for. Did the role skew more toward insights/analytics or toward modeling/research?