Roblox·Data Scientist·Technical Phone Screen
Jun 2026
Roblox data scientist interview threw a pretty dense SQL question at me that combined fraud logic, age calculations, and chargeback lookups all in one query. No window functions allowed, which was the annoying constraint. Felt okay about the structure but definitely second-guessed some of the edge case handling afterward.
- Using only CASE WHEN and JOINs (no window functions), write a single SQL query that returns, for each user with at least one payment in the last 7 days, their user_id, total payment count in that window, count of suspect payments in that window, and a Y/N flag for whether they have any chargeback on payments from the last 60 days. A payment is suspect if the user was under 18 at the time of payment, the user's country doesn't match the payment's ip_country, or the payment happened within 24 hours of account creation and exceeded $10. The chargeback flag covers any chargeback timestamped on or before today linked to payments in the 60-day window.
“This one took me a minute to even parse.” The rest of the author's notes on Data Scientist interview at Roblox, 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