Imc · Data Scientist
Updated · 2026-09-24

Imc Data Scientist
Interview Questions & Guide 2026

THE 60-SECOND BRIEF

At IMC, a Data Scientist plays a pivotal role in bridging the gap between raw financial data, quantitative research, and live execution. Unlike traditional technology firms where data science might support product analytics or marketing, at IMC, your work directly impacts the core trading engine. You will be responsible for extracting actionable insights from massive, high-frequency market datasets, designing predictive models, and optimizing execution strategies that run in real-time production environments.

Nearly every loop contains a round whose deliverable is a recommendation to someone non-technical. Practise stating a conclusion, the confidence attached to it, and the cost of being wrong in each direction, because that triple is the artifact being graded.

Imc candidates report 4 rounds · ≈ 3-5 weeks. The stages below are what candidates describe, not a published process.

Build point-in-time panels without lookaheadSeparate forecast decay from execution costSize positions by risk contribution, not conviction

33 min read

Practice 15 Data Scientist prompts
11Company bank questionsSnapshot · Sep 24, 2026 PT
13Candidate experiences ↗Read their reports
15Practice promptsAcross five skill areas
3With worked solutionsIncluded in the practice prompts

At IMC, a Data Scientist plays a pivotal role in bridging the gap between raw financial data, quantitative research, and live execution. Unlike traditional technology firms where data science might support product analytics or marketing, at IMC, your work directly impacts the core trading engine. You will be responsible for extracting actionable insights from massive, high-frequency market datasets, designing predictive models, and optimizing execution strategies that run in real-time production environments.

The scale and complexity of the data at IMC are immense. You will work with petabytes of historical tick-by-tick market data, order book dynamics, and alternative datasets to identify subtle patterns that can be translated into trading signals. The models you build will contribute to liquid market-making and proprietary trading strategies globally, requiring you to balance mathematical rigor with computational efficiency.

This role is highly collaborative, placing you at the intersection of trading desk activities and software engineering. You will work alongside and to rapidly prototype, backtest, and deploy models. Success in this position requires not only exceptional quantitative skills but also a deep curiosity about financial markets and the resilience to thrive in a fast-paced, high-stakes environment.

01

Online Assessment

reported

A handful of shapes account for most of what gets asked in this format: a ranking or deduplication inside groups, a running or rolling total, a period-over-period comparison, and a cohort tracked forward over time. Recognising the shape quickly is most of the speed here; deriving it from scratch while a clock runs is where the time goes. Know that a window function keeps every row while a GROUP BY collapses them, and know which one the question needs. If the exercise is in Python instead of SQL, the same shapes arrive as groupby with transform, shift and merge, and the same grain mistakes are available.

What to demonstrate

  • Whether you reach the right construct without a detour, such as ROW_NUMBER over a partition to deduplicate instead of a self-join against a MAX subquery
  • Whether you know what your window frame actually is, since adding ORDER BY inside OVER changes the default frame and silently changes a running total
  • Whether the thing runs. A near-miss that throws an error scores below a plainer query that returns the right rows.

How to prepare

  • Write each of the four shapes once from memory against a small schema and keep the working version somewhere you will reread it: dedupe with ROW_NUMBER, a running total, a month-over-month change with LAG, and a retention table
  • Compute one running total twice on data with tied timestamps, once on the default frame and once with ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, and look at where the two disagree
  • If Python is on the table, rebuild the dedupe and the running total with groupby and cumsum, then assert the two implementations return identical rows
PracHub interview research
02

Recorded Video Interview

reported

Rounds outside the standard loop often open with something deliberately under-specified: a loose business problem, an open question about a product area, a dataset described in one sentence. The common failure is surveying, listing six plausible approaches and committing to none of them. The thing that separates a strong answer is scoping out loud. State what you are treating as the goal, name the metric you would move, say what you are choosing not to do and why, then take one path through to an actual answer. An interviewer can follow you down a narrow path. Nobody can grade a menu.

What to demonstrate

  • Whether you turn an ambiguous prompt into a stated question with a measurable outcome before doing any work
  • The judgement visible in what you cut, and whether you say why you cut it rather than silently dropping it
  • Whether you land on a concrete recommendation with its caveat attached, rather than an unranked set of options

How to prepare

  • Take three vague prompts, such as 'is this feature working', 'why did retention drop', and 'should we expand into a new segment'. For each, write one sentence of goal, one primary metric with its window, and two things you are explicitly not doing.
  • Practise giving the recommendation first and the reasoning second, in five minutes. Loosely defined rounds are usually time-boxed, and an answer that arrives last often does not arrive.
  • Keep a running assumption list as you talk, on paper or in the shared doc, so the interviewer can challenge one assumption instead of your whole answer.
PracHub interview research
03

Live Technical Interviews

reported

Before anything else, this round is a reading test. You are given a small schema and a question phrased in business language, and most of the difficulty sits in the gap between them. Who counts as an active user, does a refunded order still count as an order, is that date column an event time or a load time. Weak answers start typing immediately and compute something precise about the wrong population. Strong ones pin the definition in one sentence, name the column that encodes it, then write the query. On a timed assessment with nobody to tell, write the definition in a comment anyway.

What to demonstrate

  • Whether an ambiguous term becomes a specific column and filter before any computation happens
  • Whether you read the schema for keys and cardinality rather than only for column names
  • Whether the result answers the question at the grain it was asked at, per user or per session or per day

How to prepare

  • Take three metrics you already use and write down the exact filter and exact grain behind each, then practise stating one of them in a single sentence out loud
  • On a schema you have never seen, spend the first minute writing what one row of each table means and which key it is unique on, then predict which joins can duplicate rows
  • Rehearse a version where the definition changes halfway through, and edit the query you have instead of starting over
PracHub interview research
04

Final Round

reported

Where a loop ends with a senior leader, that conversation is rarely another skills test. The technical signal already exists by then, so the questions tend to open up: what you would look at first, where a metric you have heard about could mislead, what you would push back on. The decision being made is scope, which in practice means level and how much you would be trusted to own unsupervised. Treating it as a formality is the usual mistake. An open question late in the day is still being scored, and a vague answer reads as someone who has not run anything themselves.

What to demonstrate

  • Whether your view of the business has anything specific behind it, given that you are working only from what is public and are expected to say so
  • Whether the scope of work you describe owning matches the scope of the role, instead of sitting a level below it
  • Whether you can disagree with something concrete and stay useful about it, rather than agreeing with everything said in the room
  • Whether your questions are ones only this person could answer, as opposed to ones the recruiter already covered

How to prepare

  • Build one view you could defend for two minutes using only public information: what the funnel probably looks like, which metric likely drives decisions, and where that metric could mislead. Being wrong for a stated reason survives this round; having no view does not
  • Write down the largest piece of work you have owned from question to decision, who else touched it, and what you decided alone, then check that it reads at the level you are interviewing for
  • Prepare one thing you would want changed if you joined and phrase it as a question rather than a verdict, so it opens a conversation instead of closing one
PracHub interview research

13 candidate reports. Individual accounts describe a particular role and hiring cycle.

Software Engineer

IMC Software Engineer interview with no update after round two

After I got through the early stages, the process seemed to be moving normally. I completed what I believed was round two and waited for the next step. The silence afterward threw me off. I never received an official message saying that I hadn’t made it to round three. Instead, I was left to infer what had happened, with no real closure. The lack of communication made the experience drag on even…

Read full experience
Software Engineer

IMC Software Engineer home assignment and code review

Take-home ProjectOutcome: rejected

I started with a home assignment that was split into two parts. They estimated about six hours of work and gave me three days to complete it, so it felt manageable at first. The first part involved implementing something straightforward, along with smaller requirements such as writing a README and adding unit tests. Some of the solution requirements felt subjective and depended on the approach, w…

Read full experience
Software Engineer

IMC Software Engineer interview: seven three-minute reasoning sessions

Online Assessment

I applied through a school career fair and online, and then received an online logical reasoning test. It was divided into seven sessions. Each session lasted three minutes and had four questions, which made the test feel rushed even though the topics were the kind of things you can practice. After I finished it, I received a second online test with three questions. This one was more technical, a…

Read full experience
Network Engineer

IMC Network Engineer interview: modern C++ and multicast protocol questions

Online Assessment

My process began with an asynchronous online interview and a technical test. The main technical portion started with a deeper discussion focused heavily on C++. It felt intense from the beginning. The interviewers were welcoming enough, but the questions went well beyond surface-level knowledge and dug into modern C++. I went through additional rounds, and the later stages became even more specia…

Read full experience
Software Engineer

IMC Software Engineer interview with coding, system design, and team fit

Online Assessment → Technical Screen → Take-home Project

The process was structured and felt comprehensive. After applying, I completed an online activity and then had an initial screening call. The technical portion moved into coding interviews where I could choose the programming language. The work combined problem-solving discussions with system design questions. There were also team fit and culture checks, along with a feedback step where they revi…

Read full experience

PracHub editorial advice for the preparation topics above.

01

Joining research panels to the current instrument master instead of its effective-dated version, so delisted, merged and bankrupt names silently disappear from the historical universe.

The names that leave a universe leave disproportionately after bad returns, so removing them raises backtested return and lowers backtested volatility at the same time. The bias is largest exactly where the strategy claims to add value, in the tails, and it is invisible in the output: the query succeeds, the row count looks plausible, and the equity curve simply looks better than it should. The fix is to resolve universe membership with a predicate on effective_from and effective_to, never on status = 'active'.

02

Computing a t-statistic on daily observations of an h-day forward return as if the observations were independent.

Sampling an h-day forward return every day means consecutive observations share h-1 days of the same return, which induces strong positive autocorrelation. The naive standard error is too small by a factor on the order of sqrt(h), so a 5-day-horizon signal with a genuine t of 1.3 can present as 2.9. Either use non-overlapping samples, which costs power, or use a Newey-West or Hansen-Hodrick covariance with at least h-1 lags, and state which one was used.

03

Averaging per-user rates to produce a population rate

Decide which quantity you want: the mean of per-user ratios and the ratio of summed numerator to summed denominator are different estimands, and heavy users dominate one but not the other. For a ratio metric, aggregate numerator and denominator separately and use the delta method for its variance.

04

Ignoring interference between units in a marketplace experiment

Ask whether one unit's treatment can change another unit's outcome through shared inventory, a matching pool, a social graph or a common budget. Where it can, randomise at a level that contains the spillover, such as region or time slice, and say explicitly what that costs you in statistical power.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

12 technical prompts3 include a worked solution

Calculate the expected value of a game where you roll a fair six-sided…

medium
statistics and probability

Calculate the expected value of a game where you roll a fair six-sided die and have the option to roll a second time to replace your first score.

Approach
  1. Sanity-check the answer against a simple bound or a simulated case.
  2. Say what the estimate is of, and over what population it generalises.
  3. Write down the assumption the method needs before you use the method.
Follow-up
  • How would you explain this result to someone who does not know statistics?
  • What sample size would you need to detect an effect half this size?

Explain the concept of conditional probability and how you would apply…

medium
statistics and probability

Explain the concept of conditional probability and how you would apply Bayes' theorem to update a trading signal's strength.

Approach
  1. Write down the assumption the method needs before you use the method.
  2. Translate the result into the decision it informs, in one plain sentence.
  3. Sanity-check the answer against a simple bound or a simulated case.
Follow-up
  • Which assumption here is most likely to be violated in practice?
  • What sample size would you need to detect an effect half this size?

Solve a systems-of-equations problem using matrix algebra, and explain…

medium
statistics and probability

Solve a systems-of-equations problem using matrix algebra, and explain its geometric interpretation.

Approach
  1. Sanity-check the answer against a simple bound or a simulated case.
  2. Translate the result into the decision it informs, in one plain sentence.
  3. Say what the estimate is of, and over what population it generalises.
Follow-up
  • How would you explain this result to someone who does not know statistics?
  • What sample size would you need to detect an effect half this size?

Walk through the mathematical derivation of a basic linear regression …

medium
machine learning and modelling

Walk through the mathematical derivation of a basic linear regression model and explain how you would handle multicollinearity in high-dimensional datasets.

Approach
  1. Frame the prediction: the label, the moment of prediction, and the action it triggers.
  2. Set a baseline first, so any model has something honest to beat.
  3. Check what information would not exist at prediction time, and exclude it.
Follow-up
  • How would you choose the decision threshold, and who owns that choice?
  • What would you monitor after launch to know the model is still valid?

Implementation shortfall in basis points against arrival price

mediumWorked solution
tcaexecutionpandas

You have one month of parent_order (order_id, instrument_id, side, order_qty, filled_qty, arrival_mid_px, terminal_ts, adv_20d, algo_name, status) and execution_fill (fill_id, order_id, fill_qty, fill_px, commission_amt, exchange_fee_amt, rebate_amt, is_correction, corrects_fill_id), plus mid_1s (instrument_id, ts, mid_px) on a one-second grid. Compute notional-weighted implementation shortfall in basis points versus arrival, sliced by algo_name and participation bucket, charging unfilled quantity at the mid prevailing at terminal_ts. Canceled and rejected orders are in scope.

Approach
  1. Recompute avg_fill_px from the fills as a quantity-weighted mean rather than trusting the parent_order column. That column is written by the OMS at terminal time and is stale on any order that received a correction after the close.
  2. Resolve corrections before aggregating: drop every fill_id that appears as a corrects_fill_id target, then drop rows with fill_qty = 0, which removes busts including a bust that supersedes a real fill. Chains need no special case, because every intermediate row is also somebody's target.
  3. Assemble the numerator in currency, not in basis points: side_sign*(avg_fill_px - arrival_mid_px)filled_qty, plus commission_amt plus exchange_fee_amt minus rebate_amt, plus side_sign(terminal_mid_px - arrival_mid_px)(order_qty - filled_qty), with side_sign = +1 for buy and buy_to_cover and -1 for sell and sell_short. Divide by order_qtyarrival_mid_px and multiply by 10000.
  4. Look terminal_mid_px up as of terminal_ts per instrument in mid_1s. For a rejected order terminal_ts is the rejection instant, so its opportunity-cost term is near zero by construction and the order still belongs in the denominator.
  5. Aggregate as sum(numerator)/sum(order_qty*arrival_mid_px) inside each cell, which is a notional weighting, not a mean of per-order basis points. Bucket participation as filled_qty/adv_20d with edges at 1%, 5% and 15%.
Worked solution 35 min
  1. superseded = set(fills.corrects_fill_id.dropna()); fills = fills[~fills.fill_id.isin(superseded) & (fills.fill_qty > 0)].
  2. agg = fills.groupby('order_id').agg(qty=sum of fill_qty, notional=sum of fill_qty*fill_px, comm, fee, reb); avg_px = notional/qty.
  3. Left-join agg onto parent_order so orders with zero surviving fills keep a row with qty = 0 instead of vanishing.
  4. Look up terminal_mid_px by an as-of lookup of (instrument_id, terminal_ts) into mid_1s.
  5. Build the per-order numerator and denominator columns, then groupby([algo_name, participation_bucket]) and divide the two sums.
EXPECTED RESULTOne row per (algo_name, participation bucket), with shortfall positive in most cells (positive means cost) and rising with participation. The all-orders notional-weighted total is materially larger than the simple mean of per-order basis points, because small orders are numerous and cheap and a mean lets them dominate.
Follow-up
  • The top participation bucket shows a shortfall three times the bottom bucket. How much of that is the algo, and how much is that hard-to-trade names get routed there in the first place?
  • These same orders beat interval VWAP on average. Explain in one sentence why both numbers are correct, and say which you would put in front of a portfolio manager.
  • A broker asks you to exclude orders canceled within 30 seconds. What happens to the reported number, and why would they want that?

Roughly 90 minutes a night on weekdays with one longer weekend block. The plan deliberately cuts scope rather than compressing everything, on the assumption that finishing one thing a night beats half-starting four.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Fix the scope and set a baseline
  • Read the role description and write the three things the loop will almost certainly test, then write an explicit not-doing list for everything else and keep it visible all week.
  • Take one 20-minute SQL prompt and one 10-minute metric question cold, and write the single sentence that says what blocked each attempt, since that sentence is what decides which two topics get the most evenings.
  • Set the week's one rule: one problem finished to completion every night, including the night you only have 40 minutes.

Deliverable: A one-page scope with an explicit not-doing list and two cold attempts, each carrying one sentence on what blocked it.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Worked solution ↗
02One query pattern, written three times
  • Choose the single pattern most likely to appear (a cohort retention grid, or a funnel counted by user) and write it three times from a blank file rather than editing the previous attempt.
  • On the third attempt, write the grain of every CTE as a comment before writing its body.
  • Stop at 90 minutes even if the third version is imperfect, and write the one thing you would fix with another hour.

Deliverable: Three independent versions of the same query plus a note on what changed between them.

Practice prompt ↗Practice prompt ↗
03Only the statistics you will be asked to defend
  • Write, in under 200 words, how you would decide whether a difference between two groups is real: the test, its assumptions, and what you would switch to when an assumption fails.
  • Compute a 95 percent confidence interval for a difference in proportions by hand on realistic numbers, then write in one sentence what changes if the two samples are paired rather than independent.
  • Write your answer to "what does a p-value mean", check it against a definition, and delete the version that describes it as the probability the hypothesis is true.

Deliverable: A 200-word written answer and one hand-computed interval you can reproduce under pressure.

Practice prompt ↗Practice prompt ↗
04One case, and the assumptions holding it up
  • Answer one product case aloud in 20 minutes with a recording running, then listen back with a pen and mark every claim you asserted without saying what it rested on: an assumed user behaviour, an assumed data source, an assumed baseline rate, an assumed grain.
  • Pick the three assumptions the recommendation actually depends on, write how you would check each one against data, and say which one being wrong would flip the recommendation rather than merely weaken it.
  • Write the four-step structure you used onto a card small enough to hold in working memory when you are nervous.

Deliverable: One recording, three load-bearing assumptions each with a written check, and a four-step structure card.

Practice prompt ↗Practice prompt ↗Worked solution ↗
05Your own work, timed
  • Write a 90-second version and a four-minute version of your main project, and time both out loud rather than reading them.
  • Prepare answers to the two follow-ups that always come: what you would do differently, and how you knew it worked.
  • Put one number in the first sentence and be able to say exactly where that number came from and what it excludes.

Deliverable: Two timed narratives with one defensible number in the opening line.

Practice prompt ↗Practice prompt ↗
06The one full rehearsal, in a longer weekend block
  • Run a 60-minute mock covering query work, a case and a behavioural question in a single sitting with no breaks, because sustained attention is the thing evenings have not trained.
  • Immediately afterwards, and before hearing any feedback, write the three moments you lost the thread.
  • Spend the rest of the block only on those three moments, and on nothing you merely feel shaky about.

Deliverable: Mock notes naming three failure moments with a specific fix written under each.

Practice prompt ↗Practice prompt ↗
07Taper
  • Write the 20-minute warm-up you will actually do on the morning of the interview: one query you can already write from a blank file, one metric you can define out loud, and nothing you have never seen before.
  • Re-read only your own notes from this week, and open no new material.
  • Write down the logistics: the tool you will be asked to work in, whether lookups are allowed, and the sentence you will use when you do not know something.

Deliverable: A one-page card holding the case structure, the project numbers, and the logistics.

Practice prompt ↗Practice prompt ↗Worked solution ↗

Expand any day for tasks and deliverables. Your progress is saved on this device.

Interviewers here are not checking whether you can describe a project. They want the decision you made, why you made it under the information you had, and what changed afterwards that someone else could measure. A story that ends at 'I built a model' has no ending. Say what the model caused, or what you stopped doing because of it.

What is your deepest professional or technical passion, and what steps…

medium
behavioural and stakeholder questions

What is your deepest professional or technical passion, and what steps have you taken to actively pursue it?

Approach
  1. Close with what you would do differently, concretely.
  2. Quantify the outcome, including what you would not claim credit for.
  3. Pick a story where you drove the decision, not one where you observed it.
Follow-up
  • What would you do differently if you ran that project again?
  • How did you know the outcome was caused by your change?

Describe a time when you received harsh or critical feedback on your w…

medium
behavioural and stakeholder questions

Describe a time when you received harsh or critical feedback on your work. How did you react and what did you learn?

Approach
  1. Name the disagreement or constraint, and how you resolved it with evidence.
  2. State the situation in two sentences and spend the rest on your reasoning.
  3. Quantify the outcome, including what you would not claim credit for.
Follow-up
  • What would you do differently if you ran that project again?
  • How did you know the outcome was caused by your change?

Writing an impact statement that survives a hostile reading

hard
self-assessmentcausal inferenceattribution

Write your own annual impact statement. Your work: a market-impact recalibration the desk adopted in March; a signal you researched that a portfolio manager sized and traded; and a rewrite of the nightly position reconciliation that reduced unreconciled rows in position_daily. Realized implementation shortfall fell from 21 bps to 14 bps after March. Market volatility also fell over the same period. State what you added, in basis points where the attribution supports it, and be explicit about where it does not.

Approach
  1. What is probed: whether you can separate correlation from contribution when the correlation favours you, which is the one place almost everyone's standards slip.
  2. Build a counterfactual for the shortfall claim instead of a before-and-after. Shortfall scales with volatility, so a pre and post comparison across a regime change partly measures the market. Use orders that kept the old routing or the old parameters as a control over the same window, matched on participation bucket (order_qty over adv_20d) and side, and report the difference-in-differences rather than the raw 7 bps.
  3. State the part you cannot claim before anyone asks. The signal was sized by the portfolio manager, so its P and L is a joint product. Claim the research decision itself: what you tested, what you rejected, the number of configurations tried, and the standard error you attached. Volunteering the boundary is what makes the claims inside it credible.
  4. Give the reconciliation work a number that is not basis points. Report unreconciled and break rows in position_daily before and after, plus the downstream consequence: marks that fell back to stale_prior_day, and client reports restated. Inventing a basis-point figure for operational work costs you the basis-point figures that are real.
  5. Write a falsifier next to each claim, naming the evidence that would show you added nothing. A reviewer who watches you name your own weakest claim stops auditing the strong ones.
Follow-up
  • Your control group is 8 percent of order flow. Is the difference-in-differences credible at that size, and what would you need to make it so?
  • The signal lost money this year. Does it appear in the statement, and in what form?
  • What did you get wrong this year, and what did it cost?
  • 01

    What is your deepest professional or technical passion, and what steps have you taken to actively pursue it?

  • 02

    Describe a time when you received harsh or critical feedback on your work. How did you react and what did you learn?

  • 03

    Write your own annual impact statement. Your work: a market-impact recalibration the desk adopted in March; a signal you researched that a portfolio manager sized and traded; and a rewrite of the nightly position reconciliation that reduced unreconciled rows in position_daily. Realized implementation shortfall fell from 21 bps to 14 bps after March. Market volatility also fell over the same period. State what you added, in basis points where the attribution supports it, and be explicit about where it does not.

PracHub interview preparation framework
Is this an official Imc interview guide?

No. It is PracHub's own research and practice material for the Data Scientist role at Imc. Rounds and questions reflect what candidates have reported, not a process Imc has published, and they change over time. Confirm the current format and scope with your recruiter.

PracHub interview research
How difficult is the IMC Data Scientist interview process?

The process is highly challenging and rated as difficult by most candidates. It requires a strong combination of fast-paced mathematical puzzle-solving, practical coding tests, and deep conceptual knowledge of systematic trading and data engineering.

PracHub interview research
What is the online assessment (OA) like?

The OA consists of approximately 15 quantitative, logical, and coding questions that must be completed within 60 minutes. It is designed to test your speed, accuracy, and core mathematical foundations under tight time pressure.

PracHub interview research
Do I need a background in finance to apply?

While prior knowledge of financial markets or systematic trading is highly beneficial, it is not a strict requirement. IMC values raw quantitative talent, analytical problem-solving skills, and a strong willingness to learn the complexities of market-making on the job.

PracHub interview research
What is the company culture like for Data Scientists?

The culture at IMC is fast-paced, highly collaborative, and meritocratic. However, the trading floor environment can be intense and direct. Successful candidates are those who welcome feedback, communicate transparently, and remain calm under pressure.

PracHub interview research
Sources & methodology 3 sources ↗

Official role evidence, timestamped platform data and clearly labeled preparation advice.