Meta·Data Scientist·Technical Phone Screen
Jul 2026
Meta DS interview with a pretty involved SQL problem covering multi-account users, notification deduplication, and percentage calculations. Two tables, a bunch of edge cases, and they wanted clean ANSI SQL with CTEs.
- Given a notifications table and a dim_circle_people table, write SQL to return a single row showing how many distinct persons had exactly 2, exactly 3, and more than 3 active accounts during August 2025. An account counts as active if its last_action_date falls within the month, and a person can own multiple userids.
- Among persons with at least 2 active accounts in August 2025, what percentage had at least one unread notification across any of their accounts that month? Return the numerator, denominator, and the percentage rounded to two decimal places. A person should be counted only once even if multiple accounts had unread notifications, and persons with zero notifications belong in the denominator but not the numerator.
“This part looked manageable until I remembered the edge cases they listed out loud: userids in notifications that have no match in dim_circle_people should be excluded from person-level counts, and some accounts were created mid-August so you still count them.” 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