just finished the capital one DS interview loop for a mid-level data scientist role (not the analyst track, the DS track). took detailed notes. sharing everything.
the structure (5 rounds total): recruiter screen (30 min): resume, background, comp range technical screen with a DS (45 min): SQL + some stats case study (60 min): live product/business case, see below coding (python) interview (45 min): not ML-heavy, more pandas/data manipulation behavioral round (45 min): STAR, two interviewers
SQL round: this is real. they're a SQL shop at the DS level. you will write queries. in my case: a join-heavy query across three tables (transaction, customer, account) a window function question (rank customers by spend within each product category) a question about finding anomalies in time-series spending data
they wanted clean readable SQL, not just a correct answer. CTEs are better than nested subqueries here.
stats round (same interviewer): conceptual but specific. questions: explain p-value to a non-technical PM if we see a 5% lift in an A/B test, how do we decide if it's real what's the difference between type I and type II error in the context of a fraud model (nice and on-brand) how do you handle class imbalance
the business case: given: credit card customer data, a sharp drop in average transaction size over the past 90 days in a specific merchant category. figure out what's going on and what you'd recommend.
no data was actually given. you have to structure your investigation, say what data you'd pull, what hypotheses you'd test, in what order. they interrupt with clarifying questions. this round is mostly about structured thinking and being able to communicate with business stakeholders.
python round: pandas-heavy. read a csv, clean it (missing values, wrong dtypes), compute some aggregations, produce a summary table. not scikit-learn or model building. they want to see whether you can work with messy data efficiently.