The short answer
For a Millennium Management quantitative research internship, prepare for an online coding or data assessment, followed by technical conversations covering Python, probability, statistics and your own research, then interviews with the team.
The 2026 intake included a two hour market making dataset assessment with 15 coding tasks, while other published Millennium assessments use different HackerRank formats. Quant developers and engineers face more algorithms, implementation and systems work. Millennium's student recruitment pages confirm the broad screening → assessments → interviews sequence.
How the Millennium interview process works
Millennium recruits quantitative researchers, quantitative developers and engineers across different investment teams and central functions. For the 2027 internship programme, its published sequence is straightforward: application screening, online assessments and technical and behavioural interviews. The job and the team determine which technical work you meet.
- Application and screening. The team checks your projects, programming, research background and fit for the opening.
- Online assessment or take-home. Quant researchers may process market data in Python, complete a modelling test or submit a Jupyter notebook. Engineering applicants may receive coding, SQL or a project-codebase task.
- Technical interviews. Solve probability or statistics questions aloud, write code, explain research decisions and respond to follow-ups.
- Team and senior interviews. Portfolio managers, researchers or senior engineers explore your work, the technical trade-offs you make and how you would contribute.
The stage order above describes the common candidate journey, not an extra set of compulsory rounds. For example, one 2025 Hong Kong quant-development candidate reported a 24-hour notebook, technical interview, LeetCode round and senior-team conversation. A 2026 quantitative research intern reported a 24-hour assessment followed by five technical interviews. These accounts show how extensive the later discussions can become.
Application and early screening
Millennium's 2027 quantitative researcher internship asks for Python, statistical and machine-learning knowledge, research experience with real data, and an understanding of algorithms. The quantitative developer internship emphasises Python, C++ or Java, production-quality software, data structures, numerical computing and system design. Prepare to show one project in which you personally took a messy question through implementation, testing and a defensible conclusion.
For student applicants, Millennium currently permits up to two applications across jobs and offices. Its careers FAQ says previous finance-industry experience is not required for internships. Use your coursework, code and research to demonstrate the skills named in your chosen posting, rather than treating a finance résumé as an entry requirement.
At screening or the first live conversation, be ready to walk through a model or program you built: the original problem, your data, an incorrect early attempt, how you evaluated performance and what you would change. That level of detail matches multiple reported Millennium research interviews.
Millennium online assessments: actual formats and questions
HackerRank and AmplifyME-style market-making coding exercises both appear in documented Millennium assessment experiences. Public Millennium-branded HackerRank instructions provide unusually useful detail on timed formats. Separately, 2026 research-intern candidates reported a 15-task, two-hour Python market-making assessment. Learn which of these tracks resembles your invitation before building a practice schedule.
| Documented assessment | Time | Questions | Published task structure |
|---|---|---|---|
| QR Intern Hiring Test (HackerRank) | 120 minutes | 7 | One MCQ, two written responses, coding (including a Python-only problem) and one approximate-solution question. Test instructions. |
| QR Modeling Test (HackerRank) | 180 minutes | 3 | One data-science question and two coding questions, one Python-only. Test instructions. |
| GS Quant Test (HackerRank) | 120 minutes | 4 | Two problem-solving sections, one REST API question and one SQL question. Test instructions. |
| StatArb Quant/ML Test (HackerRank) | 300 minutes | 5 | Three priority questions and two bonus questions. Test instructions. |
| 2026 QR market-making dataset OA | 120 minutes | 15 reported | Python/pandas/NumPy coding, time-series transformations and debugging against a market-making dataset. Candidate account. |
For the seven-question QR Intern HackerRank, the official test page reveals question types but not the private problem statements. The coding section includes multiple allowed languages, with one task restricted to Python 3; the published instructions also require fullscreen mode. The GS Quant Test is materially different: prepare to call an API, work with SQL and write problem-solving code, rather than assuming every question is probability.
market making dataset assessment
August 2026 candidates described 15 coding problems in two hours, around eight minutes per task. They reported using pandas and NumPy to clean or transform time-series data, apply provided trading formulas and debug code where a later question changes an earlier assumption. In an October 2026 London QR intern interview report, the applicant identified the provider as AmplifyME and named NumPy, pandas and Matplotlib as preparation priorities.
Practise groupby, shift, sorting by security and timestamp, merging prices or fills, handling missing values and checking whether a calculated return accidentally crosses from one security into another. Be comfortable turning a written inventory or quoting rule into a function, then finding the one line that violates a revised condition. A 2026 candidate said the difficulty came from those subtle changes, not just unfamiliar algorithms.
Practice benchmark (EverythingQuant): Complete 15 short pandas/NumPy transformations or debugging tasks in 120 minutes, with small test cases for each.
24-hour Jupyter and other take-home assignments
Other research candidates received an extended notebook rather than a two-hour live test. A 2025 Zug research intern reported a 24-hour Jupyter practical, then a technical interview and manager round. A 2024 London quant research intern reported a 24-hour coding task, then portfolio-manager and team interviews including pair programming. Another London research candidate received a 48-hour take-home before five phone interviews. These are separate observed hiring processes, not one averaged time limit.
For this format, build a small, reproducible notebook: load and inspect a dataset; clean missing and duplicate observations; define your target before fitting a model; separate training from future observations; calculate a sensible baseline; and finish with a plot and an explanation of where the result could fail. The submission should run top-to-bottom on a fresh kernel.
Criteria and personality assessments
Some 2026 research-intern applicants reported a Criteria assessment after the market-making OA. One candidate who took Criteria for another Millennium role identified it as a CCAT; another described logic and behavioural multiple-choice questions. An earlier London candidate also listed a personality test. If your invitation names Criteria, practise timed logic and arithmetic and be ready for behavioural questions alongside your coding preparation. Use the invitation to identify the exact assessment; candidate reports do not establish a passing threshold.
This section also answers searches for the Millennium AmplifyME test: for recent QR applications, the useful preparation is Python work with market-making data. The existing EverythingQuant community discussion covers earlier candidate questions; keep it separate from this broader interview-process guide.
Technical interviews: probability, research and live coding
For quantitative research, the recurring interview work is reasoning through a mathematical problem, writing or explaining code, and defending your research process. Candidates have described deriving correlations, discussing linear regression, mean-variance optimisation and probability puzzles. In the October 2026 London QR account, live interviews covered probability, logic, dynamic programming and mathematical brainteasers.
A useful statistics exercise is to start with an ordinary least-squares model and explain what correlated features do to the stability of the coefficients. An interviewer can then ask how you would detect leakage in a signal, why a backtest looks unusually good, or how you would evaluate it on data from a later period. For a probability exercise, practise computing an expectation or a conditional probability aloud, then checking the result against a simple numerical example.
For coding, work in an ordinary editor without relying on autocomplete for every operation. Research candidates have reported tasks such as implementing OLS in NumPy and solving a pandas question; engineering candidates have reported LeetCode-style problems, parser implementation and Python fundamentals. After finding a correct answer, explain complexity, null inputs and what changes when data arrives out of order.
Team and final-round interviews
Later interviews often bring you closer to the researchers, engineers or portfolio managers with whom you would work. A 2025 New York QR intern described an OA, two technical rounds and a portfolio-manager round. A 2026 London quant intern reported three technical sessions, covering coding, financial brainteasers and statistics/ML, followed by a fit conversation. A 2024 London research applicant reported five calls with two teams after a take-home.
Prepare a research story you can defend without slides. Explain the hypothesis, why the data is adequate, your baseline, the out-of-sample result, transaction costs or risk constraints when relevant, and one decision you would reverse with hindsight. The follow-ups are where interviewers can distinguish a working understanding from a polished project summary.
For experienced systematic researchers or team-facing developers, extend that discussion to production reliability and portfolio impact: how you would identify a stale data feed, evaluate whether a signal survives slippage, or decide whether to turn off a model whose live behaviour has changed.
What to prepare for each Millennium role
Choose the track matching the opening. Millennium's current job descriptions separate signal research from production quantitative development and broader engineering. This changes the balance of mathematics, data and software work.
Quantitative Researcher: data, statistics and signal testing
Prioritise pandas/NumPy, regressions, sampling, time-series alignment, expected value, probability and ML validation. Drill a market-making dataset workflow, implement regression without scikit-learn, and explain the difference between an in-sample fit and a tradable out-of-sample signal. Be ready to discuss your most substantial research project line by line.
Millennium's current intern posting explicitly names real-data research, backtesting, statistical/ML methods and Python. A strong preparation block is one hour of time-series coding followed by a 30-minute oral review of leakage, hypothesis testing and failure cases.
Quantitative Developer: reliable models in production
Prepare Python/C++/Java implementation, arrays and hash maps, complexity, numerical stability, APIs and data pipelines. The 2027 quantitative developer posting also names model serving, monitoring, risk calculations and portfolio analytics. Practice a stream-processing task with cancellation or corrections, explain the data structures, and show how your service handles delayed events.
One 2025 Hong Kong quant-dev report combined a Jupyter notebook, technical discussion, LeetCode round and senior interview. That makes both research-fluent Python and ordinary algorithm problems useful, with extra attention to testing and code structure.
Software Engineering and AI: code, systems and debugging
Expect programming to take the lead. A 2026 London software engineering applicant described an initial engineer-led interview covering Python dictionaries, threads versus processes and a coding problem, without a preceding OA. Other 2025–26 internship reports describe a mathematical parser, parentheses matching and language-runtime topics such as boxing, JIT or compilation.
For an engineering assessment, practice one LeetCode medium plus one small codebase change: read unfamiliar functions, modify the requested behaviour and run regression tests. An August 2026 engineering-intern Reddit account reported receiving a substantial existing project rather than a conventional blank-editor problem.
Experienced researchers and investment-team hires
Prepare to explain the evidence behind your actual research: feature construction, backtesting assumptions, regime behaviour, capacity, transaction costs and deployment. Current systematic-equities roles ask for sophisticated Python research tools and predictive models. Interview discussions should be grounded in the strategies and techniques you can discuss legitimately, without disclosing confidential employer information.
For derivatives-focused analyst roles, candidates have reported local-volatility limitations, option Greeks and structured products. For equity alpha work, prioritise statistical robustness and how a model would behave after costs and risk limits.
Three original Millennium-style practice questions
These are new EverythingQuant exercises. They target the same practical skills documented in the assessments and interviews above.
1. Quote a market while managing inventory
A reference price is $100. Quote a bid and ask with a half-spread of $0.50. For every unit you are long, lower your quote centre by $0.10; for every unit you are short, raise it by the same amount. If you hold three units, what do you quote? If a customer buys two units from you at your ask, what is your new inventory?
Show the worked solution and code
The centre is 100 − 0.10 × 3 = 99.70, so the bid is 99.20 and the ask is 100.20. The customer buys from you, so your inventory falls from 3 to 1. Don't confuse the customer's side of the trade with your side.
def quote(reference, inventory, half_spread=0.5, skew=0.1):
if reference <= 0 or half_spread <= 0 or skew < 0:
raise ValueError("invalid quote parameters")
centre = reference - skew * inventory
bid, ask = centre - half_spread, centre + half_spread
if bid <= 0:
raise ValueError("non-positive bid")
return round(bid, 2), round(ask, 2)
assert quote(100, 3) == (99.2, 100.2)
assert quote(100, 0) == (99.5, 100.5)
Time and auxiliary space are both O(1). Test zero inventory, short inventory, a non-positive reference price and extreme inventory. A more advanced follow-up is to incorporate inventory caps or asymmetric fill probabilities.
2. Compute returns without mixing securities
A time-series table contains symbol, time and mid. For each security, calculate its percentage price change from the previous observation. Suppose ABC goes 100 → 101 and XYZ goes 40 → 39. What are their second-observation returns, and what can go wrong with a single global pct_change()?
Show the pandas solution
ABC returns +1% and XYZ −2.5%. Sort within symbols before differencing. A global shift can compare the last price of ABC with the first price of XYZ and produce a fictional return.
def add_previous_return(df):
required = {"symbol", "time", "mid"}
if not required.issubset(df.columns):
raise ValueError("missing columns")
out = df.sort_values(["symbol", "time"], kind="stable").copy()
if out.duplicated(["symbol", "time"]).any():
raise ValueError("duplicate symbol/time rows")
if out["mid"].isna().any() or (out["mid"] <= 0).any():
raise ValueError("invalid mid prices")
out["return_1"] = out.groupby("symbol")["mid"].pct_change(fill_method=None)
return out
The first return in each group is missing because no earlier observation exists. The sorting step costs O(n log n); the grouped percentage-change pass is O(n). Check duplicate timestamps, missing prices and whether a price is actually known at the time the proposed strategy trades.
3. A regression that looks profitable for the wrong reason
You predict tomorrow's stock return using today's indicators. Your backtest reports excellent accuracy, but you discover that one input column contains tomorrow's closing price. Why is the result invalid? How would you redesign the evaluation?
Show the reasoning
The feature uses information that does not exist when the prediction is made: look-ahead leakage. Remove or properly lag that column, record when every input first becomes available, and recompute the backtest using chronological training and validation periods. Fit transformations such as scalers only on the training window, then apply them to later observations.
Compare against a simple baseline and inspect performance by time period, with costs and turnover included before discussing tradability. A random row-level split can disguise time dependence and make results look better than a realistic forward test. A good interviewer follow-up is how you would audit data-vendor revision timestamps and corporate-action adjustments.
How hard is a Millennium interview?
The challenging part for research interns is often speed and technical range. A 2026 candidate reported completing only about ten of fifteen market-data coding tasks within two hours; an October 2026 London applicant likewise reported completing about ten or eleven before rejection. That is evidence of time pressure, not a published passing threshold.
Research interviews add the pressure of explaining mathematical assumptions while thinking aloud. Engineering questions can be more conventional algorithmically, but unfamiliar codebases, numerical edge cases and follow-up changes still expose shallow understanding quickly. Focus on reliable solutions under a clock, then practise defending them without notes.
A practical Millennium preparation plan
Prioritise the assessment or conversation that actually comes next. For a QR internship, start with pandas and NumPy rather than spending your entire week on exotic probability puzzles. For engineering, shift more time toward writing code and diagnosing failures.
- Day 1: establish a baseline. Write a Python function that processes a trade or price tape. Handle missing values, duplicate keys, grouping, chronological ordering and tests. Review
merge,groupby,shiftand NumPy broadcasting. - Day 2: run a timed data exercise. Use the 15 tasks / 120 minutes practice benchmark for a market-making QR OA, or a 90-minute notebook practice benchmark for a take-home. Record which tasks failed from misunderstood conditions, not just syntax.
- Day 3: rehearse a technical interview. Derive one conditional probability or expectation, implement a regression in NumPy, then explain multicollinearity, validation and leakage. Aim for complete reasoning over memorised formulas.
- Day 4: match your role. Developers solve a coding task and explain complexity and test coverage. Researchers critique a historical backtest and the available data. Engineers review a codebase, fix a bug and explain process/thread or data-structure fundamentals.
- Day 5: simulate the team conversation. Defend one real project for 30 minutes. Have someone interrupt with questions about assumptions, failed approaches, robustness and what you would build next.
For the mathematics behind conditional probability and expected value, use Probability for Quants or work through probability interview problems. For software fundamentals, the Data Structures and Algorithms in Python course is a useful companion. If you need a longer schedule across firms, build a personalised preparation roadmap.
Millennium Management interview FAQs
Is the Millennium online assessment HackerRank or AmplifyME?
Both are documented. Public HackerRank pages show Millennium QR, modelling, GS Quant and StatArb tests. Recent London QR interns describe an AmplifyME coding assessment based on market-making data. Use the invitation's actual title to identify your test.
Is the Millennium market-making OA multiple choice?
For the August–October 2026, 15-question QR dataset assessment, candidates described coding tasks, mainly using pandas and NumPy. The separately published QR Intern HackerRank includes multiple choice, written responses and coding.
Does Millennium use a Criteria CCAT or personality test?
Applicants have reported Criteria after the QR coding test, and one candidate taking it for a different role identified it as CCAT. Older applicants have also listed a personality assessment. Practise time-limited logic and arithmetic if your invitation names an aptitude test; do not assume its exact length or cutoff from a third-party prep page.
Can I use AI during Millennium's online assessment?
One 2026 QR candidate described a built-in assistant giving clarifications or hints, not complete code. Another report says the test included an internal AI helper. That is a description of that assessment, not permission to use external AI tools. Follow the conditions shown in your current testing environment.
How many technical rounds are there?
Recent quant-intern accounts include two technical interviews plus a PM round, three technical interviews plus fit, and five technical interviews. For preparation, budget time for multiple distinct coding, statistics and research conversations rather than assuming one all-purpose interview.
Does Millennium require prior finance experience?
Not for its internship programme. The official careers FAQ says finance-industry experience is not required and the programme includes market training. You should still be able to explain the market-making vocabulary used in a QR coding task.
What is the passing score for the Millennium OA?
There is no verified published Millennium cutoff for the market-making coding assessment or Criteria test. Candidate completion counts are not pass marks. In practice, prioritise correct tests, clear implementation and finishing as much of the assessment as possible.
Sources and research notes
Research checked 26 October 2026. The assessment counts in the table are taken from public Millennium-branded HackerRank instructions and clearly scoped 2026 candidate accounts. Details for individual interviews come from the dated first-hand accounts below. The worked questions are original EverythingQuant exercises. This guide is independent of Millennium Management.
- Millennium 2027 internship process and FAQ
- Millennium student quantitative research and developer job descriptions
- Published QR Intern HackerRank structure
- Published QR Modeling HackerRank structure
- August 2026 first-hand QR market-making coding account
- August 2026 coding and Criteria discussion
- August 2026 Criteria/CCAT candidate discussion
- October 2026 London quant intern accounts
- 2025–26 quant intern accounts
- 2026 London engineering and quant interviews
- 2025 Hong Kong quantitative development account
- 2024 London quantitative research internship account