Snowflake·Data Scientist·Onsite - System Design / Architecture
May 2026
This was a deep technical design round for a Data Scientist role at Snowflake, basically a full system design session focused on analytics infrastructure at scale. Four sub-questions, all interconnected, and the level of DDL and SQL detail expected was way higher than I anticipated.
- Design a fact and dimension table schema for a warehouse handling 50M events per day. Include DDL-level details: partitioning, clustering keys, surrogate keys, and how you'd handle slowly changing dimensions for user country and app version.
- Events can arrive up to 14 days late and out of order, with occasional duplicates on the same (user_id, event_ts, event_type) combination. What's your deduplication key and upsert strategy, and how do you handle late data reprocessing without double-counting cohorts? Include a backfill plan.
- Define the grain for a derived metrics table covering weekly retention by signup cohort and ARPU by cohort. Show the SQL pattern you'd use, explain how incremental materialization works, and describe data quality checks you'd put in place.
- Estimate table sizes for this 50M events/day system, justify your clustering key choices for typical queries like top-N countries over the last 8 weeks and rolling DAU/WAU/MAU, and walk through cost controls including partition pruning, approximate distinct counts, and result caching.
“I knew Type 2 SCDs conceptually but fumbled when they asked me to actually write the DDL on the spot.” The rest of the author's notes on Data Scientist interview at Snowflake, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post