Snowflake·Data Scientist·Technical Phone Screen
- Write a single BigQuery query using window functions with PARTITION BY that produces a cohort retention heatmap table with columns for signup week, week index, country, cohort size, retained users, and retention rate. Explain how you avoid double-counting users across weeks and handle users with late-arriving events.
- Extend the cohort retention SQL to compute weekly ARPU by cohort and country, ensuring users with no purchases still count in the cohort size but contribute zero to revenue.
- Build a Streamlit app that lets a user filter by country and toggle between a retention heatmap and an ARPU line chart, treats missing future weeks as NA rather than zero, masks cohorts below 50 users, and includes a UTC offset selector that re-buckets events by timezone without duplicating users across weeks.
- Describe two data quality checks you would build into the app, such as verifying cohort size monotonicity across observed weeks and guarding against clock skew that produces negative week index values.
“This is the kind of question where you feel fine until you actually try to write it.”