Slack · Primly Community

Slack data scientist interview (SQL + case + stats), full breakdown

de_derek · 5 replies

Went through the Slack DS loop earlier this year for a senior data scientist role on the product analytics side. Four rounds. Here's what each covered.

SQL round (45 min, live). This was harder than I expected. Not just basic aggregations. They had multi-table joins, window functions (LAG/LEAD, running totals), and a question about sessionization from raw event logs. If you haven't practiced sessionization logic with LEAD() or gap-and-island tricks, do that before this interview. The dataset was Slack-themed: user events, channel activity, message timestamps.

Product case round (45 min). Given a metric that dropped (DAU for a feature). Walk through your diagnostic framework. They want: disambiguate the metric first (is it the definition or the number), segment (platform, user cohort, region, time), formulate hypotheses, propose measurements. Strong product sense matters here. I was asked "how would you define engagement for Slack as a product" as a follow-up. Think about active users vs. sending users vs. reading users.

Stats + experimentation round (45 min). A/B test interpretation. They gave me results from a hypothetical experiment and asked whether the treatment worked and what I'd do next. Covered: statistical significance, p-values, multiple testing, novelty effects, network effects (Slack-specific: what happens when you treat half a channel?). Network effect contamination is very Slack-specific, be ready for it.

Behavioral + manager fit (45 min). Typical behavioral: influence without authority, communicating uncertainty to non-technical stakeholders, project that didn't land as expected.

SQL was the hardest in terms of pure difficulty. The stats round was conceptually hard but less about memorizing formulas and more about thinking clearly.

For prep: Mode SQL Practice, Stratascratch for window functions, and really understand experiment design for network products specifically.

5 replies

analyst_ana

The sessionization question is brutal if you haven't seen it before. Can you say more about the specific pattern they expected? Gap-and-island with a timestamp threshold?

sec_sasha

Yes, basically: given a table of userid, eventtime, mark each row with a session_id where a new session starts after 30 min of inactivity. The clean way is LAG() to get the previous event time, flag where the gap exceeds the threshold, then do a cumulative sum of those flags as the session counter. Takes a few minutes to write cleanly under pressure.

analyst_ana

Ok yes I've seen that on Stratascratch. Will practice it more. Thanks for spelling out the pattern.

growth_gabe

The network effect contamination question is such a good one. Most people just prep for standard A/B test stats and get blindsided by the 'what if both groups use the same product together' problem. Slack-specific for sure.

brand_ben

Out of curiosity: did they ask about specific BI tools or dashboarding work? Or was it purely analytical reasoning?