Guides › Two Sigma
T

Two Sigma Interview Guide (2026)

You will not get in by grinding 500 LeetCode problems and nothing else. Two Sigma hires people who can think out loud under pressure, not people who can pattern-match silently.

SWE / Quant13 min readUpdated 2026-11

The complete Two Sigma interview, start to finish. Work through these 10 sections (about 13 min) and you walk in knowing exactly what each round tests and how to prepare.

Here is what actually happens, what wins, and where most strong candidates quietly lose points:

The loop at a glance

Six rounds, one theme: can you reason out loud under pressure. Everything below defends these five calls.

  1. It is a research firm that trades. Your probability instinct is graded as hard as your code. A clean O(n) coder with no probability sense loses to a decent coder who makes a market well.
  2. Narration beats speed. A silent perfect answer scores below a slower answer where you talked through the tradeoffs. They hire your thinking, not your typing.
  3. Complexity is not optional. At a latency firm, "it works" without "it is O(n log n) and here is the constant that hurts" is an incomplete answer.
  4. Get in warm. Cold-apply hit rate is in the low single-digit percent. A referral or the internship-to-return path is the real door.
  5. Comp is bonus-weighted. Judge an offer by expected total, not base, especially on the quant side where the variable number is the whole story.

1Snapshot, read this first#

Thing Reality
Roles SWE (platform, infra, data, trading systems), Quant Researcher, Quant Dev. Also "Software Engineer, Modeling" blends
Levels New grad through senior/staff. New grads genuinely welcome, they have a strong campus pipeline
Process length Usually 3 to 6 weeks start to finish
Rounds OA, then a recruiter/phone technical, then a 4 to 5 round onsite (virtual or in-office)
What wins Clear reasoning out loud, correct probability instincts, clean code with correct complexity, and real curiosity about markets/data
What fails Silent coding, hand-wavy probability, memorized answers you can't defend, no questions for them
Comp US (new grad SWE) Usually ~$175k to $215k base, large bonus, total first-year often $250k to $350k+
Comp US (quant) Base similar, bonus much bigger. Total $300k to $500k+ is common for strong quant hires
Comp UK (London) Base often £90k to £130k for SWE, significantly higher total for quant
Comp India/APAC Smaller footprint. Think strong-tier India comp, not US numbers. Hedge: roles here are fewer and more selective

The one thing to understand about Two Sigma: this is a research-driven, data-and-engineering company that happens to trade, not a sales floor.

  • They care how you think about uncertainty. Your probability reasoning matters as much as your code.
  • A clean O(n) solution with no probability instinct is a weaker candidate here than a decent coder who makes a market intelligently and updates on new information.
  • Most candidates get this backwards and over-invest in LeetCode hards.
What this firm actually optimizes for

Reasoning under uncertainty, measured. Every round is a different lens on the same question: when the ground shifts, do you update like a researcher or defend like you are protecting an ego? Answer that well and the coding takes care of itself.

2Getting the call (the part most guides skip)#

Two Sigma gets a mountain of applications, and the cold-apply hit rate is low: low single-digit percent for an unreferred resume into a public posting. Here is what actually moves you forward.

Referrals beat a perfect resume.

  • A referral from a current engineer or quant outweighs a flawless cold application.
  • Find people on LinkedIn who joined from your school or your current company.
  • Do not ask "can you refer me." Ask a real question about their team: "how much of your week is research tooling versus production hardening?", then let the referral happen naturally.
  • A warm intro gets you read by a human instead of a filter, and it often shaves a week off scheduling because the recruiter already has context.

Campus pipeline is the cleanest door.

  • If you are a student, the internship-to-return-offer path is one of the best ways in.
  • Target the internship a year early: apply in the fall for the following summer, because the strongest seats fill before winter break.
  • Returning interns make up a big chunk of new grad hires, so a summer here is close to a conditional full-time offer if you perform.

Your resume bullets must be measured. They want signal that you build real things and measure them. Compare these two:

  • Weak: "Worked on a data pipeline to process market data."
  • Strong: "Rebuilt an ETL pipeline in C++/Python processing 2B rows/day, cut end-to-end latency from 40min to 6min and saved ~$18k/month in compute."

Why the strong one wins:

  • Numbers, scale, latency, money. That is the language of this firm.
  • The weak version tells a reader nothing to grade.
  • The strong version shows you know what 2B rows/day costs, that you measured before and after, and that you think in money.
  • Every bullet should answer "how big, how fast, how much."

ATS keywords that help:

  • Core: C++, Python, low-latency, distributed systems, probability, statistics, time-series, data pipelines, Linux, multithreading.
  • Quant add-ons: stochastic processes, ML, portfolio, backtesting.
  • Put only the real ones you actually know. Fake keywords die on the first follow-up (it exposes the padded skill in about ten seconds and poisons the rest of the round).
One honest edge

A GitHub with a real project (a backtester, a toy matching engine, a market-data parser) beats another course certificate. Engineers read code. A 400-line matching engine that handles limit and market orders with a clean README earns more credit than a stack of certificates, because it proves you can finish something and reason about correctness.

3The loop at a glance#

Round Length What it tests
Online assessment (HackerRank or CodeSignal) 60 to 90 min Fast DSA, sometimes a probability/math section. Pure filter
Recruiter + technical phone 45 to 60 min One or two coding problems, reasoning, fit. Maybe light probability
Onsite: coding 1 45 to 60 min Core DSA, clean implementation, complexity
Onsite: coding 2 or systems 45 to 60 min Harder algorithm, or low-latency/concurrency for infra roles
Onsite: probability / brain-teasers 45 to 60 min Expected value, conditional probability, combinatorics, market games
Onsite: behavioral / values 30 to 45 min How you think, how you work, genuine interest in the firm

How the loop flexes by role:

  • Quant researcher loops lean heavier on probability, statistics, and sometimes a modeling/ML discussion where they hand you a messy dataset and ask how you would find and validate signal.
  • Pure SWE infra loops lean heavier on systems and C++, with one interviewer often drilling concurrency until you hit the edge of what you know.
  • The onsite is usually a single block of back-to-back rounds, so pace your energy and treat each interviewer as a fresh read (they rarely share notes mid-loop).

4The coding or technical rounds#

The coding bar is high but not exotic. They reuse a tight set of patterns and expect you to execute them fast and clean. "Fast" means a clean working solution to a medium in roughly 20 to 25 minutes, leaving room to discuss and test.

Topics that show up constantly:

  • Arrays, two pointers, sliding window
  • Hash maps for O(n) lookups
  • Heaps and priority queues (think "top K", streaming medians)
  • Graphs and BFS/DFS, occasionally Dijkstra
  • Dynamic programming, usually one solid medium-hard
  • Intervals, sorting, binary search on the answer
  • Stacks (monotonic stack problems appear a fair bit)

The twist: they dress problems as market scenarios.

  • Difficulty is roughly LeetCode medium with one hard-leaning problem.
  • They want speed plus correctness plus narration. A perfect answer in silence scores lower than a slightly slower answer where you talked through the tradeoffs, because they are hiring your thinking, not your typing.
  • A "running median of a trade price stream" is just two heaps. A "find the two tick timestamps closest in value" is just sort plus two pointers.
  • Translate the story into the pattern out loud so they see you do it.

How to actually win the round:

  1. Clarify first. Restate the problem. Ask about input size, duplicates, empty cases, and whether the input streams or fits in memory. This is not stalling, it is signal. A candidate who pins down the constraints before touching code tells the interviewer they will not solve the wrong problem for 30 minutes.
  2. State your approach before coding. "I'll use a hash map to get O(n), here's why the brute force is O(n squared) and why that matters at scale." Say the complexity out loud, and say the one you are rejecting and why.
  3. Narrate while you code. "When I run this loop, what I'm really checking is whether we've seen the complement before." That sentence shows you understand your own code instead of reciting a memorized template.
  4. Test it yourself. Walk a small input through by hand, including an empty case and a single-element case. Catch your own off-by-one before the interviewer has to. Candidates who test unprompted stand out, it is maybe the cheapest way to look senior.
  5. Know your Big-O cold. If you cannot state time and space, the right answer does not fully count here. At a latency firm, "it works" without "it is O(n log n) and here is the constant that hurts" is incomplete.

Probability and brain-teasers (this is the Two Sigma flavor). For many roles you get a dedicated quant/probability interviewer. Expect:

  • Expected value. "You roll a die repeatedly and sum until you exceed 10. What's the expected number of rolls?" Set up the recurrence or indicator variables, do not guess. For expected rolls of a fair die until a 6, the clean answer is E = 6 via the geometric mean, and they want to hear that reasoning, not the number.
  • Conditional probability and Bayes. The classic reframed: given a positive test with a known false-positive rate, what is the real probability you are sick? The trap is ignoring the base rate. Write P(sick | positive) = P(pos | sick) P(sick) over P(pos), and plug numbers so they see you respect the prior.
  • Combinatorics. Counting arrangements, birthday-problem-style collisions, where the move is to count the complement (P of at least one match = 1 minus P of all distinct).
  • Market-making games. "I'll let you make a market on the number of heads in 100 flips. Give me a bid and an ask." They push on your spread and whether you update with new info. The expected value is 50, so a reasonable market is something like 48 bid, 52 ask, and when they say "I'll sell you size at your bid" you should widen or shift, because someone trading against you is information.
  • Optimal strategy puzzles. Gambling/stopping problems, fair-game reasoning, when to take a bet. The default lens is expected value, but mention variance and ruin when it matters, that shows real market thinking.

Practice resources that match their style:

  • Heard on the Street
  • A Practical Guide to Quantitative Finance Interviews (the Zhou green book)
  • Fifty Challenging Problems in Probability

Do them with a pen, out loud, explaining each step. The explanation is the skill they are buying, so if you can only get the answer by recalling it, you have not actually prepared for this round.

Pause before you read on: the interviewer says "I'll sell you 100 lots at your bid of 48" on the heads-in-100-flips market. What should your next move be, and why?
Reveal the answer
Someone eager to hit your bid is information: they likely think the true value is below 48, or they want size you should not give at that price. Do not freeze and do not just fill. Widen or lower your market, or ask for their reasoning, and say out loud that a counterparty trading against you updates your estimate. The right answer is not a number, it is showing you treat the other side's action as a signal. That instinct is exactly what the round is testing.

Low-latency C++ (some infra/trading roles). If the role is latency-sensitive, expect questions on:

  • Cache behavior, memory layout, avoiding allocations on the hot path
  • Move semantics, std::vector vs intrusive structures
  • Lock-free vs locks, and false sharing

You do not need to be a compiler author. You do need to know:

  • Why a cache miss hurts, roughly that an L1 hit is a few cycles while a main-memory miss is hundreds.
  • How you would measure it with perf or a benchmark harness.
  • A strong answer on "why is this loop slow" names the cache line, not just "it does too much work."
The silent-coder trap

Solving it perfectly in silence is a weak score here, not a strong one. If the interviewer cannot see your reasoning, they cannot tell what you actually understand, and they grade what they can see. Talk through the brute force, the complexity, the one approach you are rejecting, and the edge cases. Narration is not a nicety at this firm, it is the signal.

5System design and CS fundamentals#

For most SWE levels below senior, this is less "design Twitter" and more data systems, concurrency, and fundamentals. For senior/staff, you get a proper design discussion with scale targets and failure modes.

If you get a design round, use this spine:

  1. Clarify the actual problem and the scale (events/sec, data size, latency target). Pin real numbers: "is this 10k messages/sec or 10M, and what's the p99 latency budget?"
  2. Sketch the data flow end to end before optimizing anything. Draw the boxes first, resist the urge to pick a fancy datastore in minute two.
  3. Name the bottleneck honestly, then address it. "The join is the bottleneck, not the network" earns more than a buzzword tour.
  4. Talk tradeoffs out loud: consistency vs latency, batch vs stream, memory vs recompute. There is no free answer, they want to hear you weigh it.

Here is a minimal shape for a market-data ingestion pipeline, the kind of flow they expect you to sketch:

flowchart LR FEED[Exchange feed UDP] --> ING[Ingest workers] ING --> BUF[(Ring buffer)] BUF --> NORM[Normalizer] NORM --> TS[(Tick store)] NORM --> LIVE[Live consumers]
A market-data ingest pipeline at a glance. The load-bearing choice is the bounded ring buffer: it is where backpressure lives, and where you have to say out loud what happens when a burst overruns it.

Classic prompts they lean toward:

  • Market-data ingestion that handles bursts without dropping messages. The crux is backpressure and a bounded buffer, and admitting that under extreme burst you either drop, sample, or buffer to disk, and which one the business can tolerate.
  • A time-series store for tick data. Shard by symbol and time, order by timestamp on disk, and explain why a range scan on sorted data beats an index lookup here.
  • A backtesting system: correctness, reproducibility, no look-ahead bias. The whole game is making sure your strategy at time T only ever sees data available at time T, so talk about point-in-time data and deterministic replay.
  • A rate limiter or an in-memory cache with eviction. Know token bucket vs sliding window, and be ready to implement LRU with a hash map plus doubly linked list from scratch.

CS fundamentals (expect these for new grads and interns):

  • OS: processes vs threads, context switching, mutex vs semaphore, deadlock and the four conditions plus how you would break one, virtual memory and what a page fault costs.
  • Concurrency: race conditions, what a lock actually protects (invariants on shared state, not the code), atomics, the producer-consumer pattern and why you need a bounded queue.
  • DBMS: indexing, B-trees and why they fit disk pages, what a query planner does, ACID, when you would denormalize for read speed.
  • Networking: TCP vs UDP (UDP matters here, market data often rides it because a late packet is worse than a lost one), what happens in a TCP handshake, head-of-line blocking.
  • Data structures under the hood: how a hash map resizes (and the amortized cost of the rehash), when a BST degrades to O(n) and why you would reach for a balanced tree or a heap instead.

Know why, not just the definition:

  • "A mutex serializes access so two threads can't corrupt shared state" beats reciting a textbook line.
  • "UDP because we tolerate a dropped quote but not 20ms of retransmit delay" is the kind of answer that lands here.

6Behavioral and culture fit#

Two Sigma's culture is genuinely research-and-rigor flavored. Their stated values circle around being open (gracefully receive and give feedback), curious, humble about what you don't know, and collaborative.

  • They are skeptical of ego, and they love people who say "I was wrong, here's what I learned."
  • This is not a throwaway round. Strong coders get a no for arguing with a hint, because that behavior predicts how they will take a code review or a disproven backtest.

Prepare 5 to 6 STAR stories:

  • A hard bug, a disagreement you handled well, a time you were wrong, a project you drove, a time you learned something fast.
  • Attach a number to every result, because a story without a measured outcome reads as hypothetical.

Here is one worked example:

Situation: Our overnight risk report was arriving 3 hours late, blocking the morning trading desk. Task: I owned the pipeline and had to cut the runtime without rewriting everything. Action: I profiled it and found 70% of the time was a single unindexed join. I added a composite index, batched the writes, and parallelized the three independent stages that were running serially. I shipped it behind a flag and validated output byte-for-byte against the old run for a week. Result: Runtime dropped from 3h10m to 38 minutes, the report landed before market open every day, and we reused the parallel-stage pattern in two other jobs.

Why that shape works:

  • A real problem, your own reasoning, a measured result, and a lesson that spread.
  • The "validated byte-for-byte for a week" line is doing quiet work: it signals the rigor they care about.

Have smart questions ready.

  • "What does the research-to-production handoff look like on your team?" shows you understand the firm.
  • A follow-up like "how do you catch a model that silently stops adding value?" shows you think about the hard part.
  • Having no questions reads as no interest, and at a firm this selective that alone can sink a borderline loop.

7Your prep plan#

4-week plan

  • Week 1: DSA fundamentals. 4 to 5 LeetCode mediums a day, grouped by pattern (two pointers, then heaps, then graphs). Review Big-O until you state it before you finish typing.
  • Week 2: Probability. Work through Heard on the Street and the Zhou green book, pen and paper, out loud. Do EV and conditional probability daily, and do at least three market-making games where someone trades against your quotes.
  • Week 3: Systems + fundamentals. OS/DBMS/networking review, plus 2 design/data-pipeline prompts. If the role is C++, drill memory and concurrency until false sharing and move semantics are reflexive.
  • Week 4: Mock interviews. Timed, narrated, with a human if possible. Polish STAR stories. Redo problems you failed, slowly, until you understand the pattern and not just the fix.

2-week plan

  • Days 1 to 5: top 75 LeetCode patterns, mediums, timed and narrated.
  • Days 6 to 9: probability and market-making games daily.
  • Days 10 to 12: fundamentals and one design prompt.
  • Days 13 to 14: full mock loops, fix weak spots, prep questions for them.

2-day crash plan

  • Day 1 AM: 10 LeetCode mediums across patterns, out loud. PM: 15 EV/conditional-probability problems.
  • Day 2 AM: review your 3 weakest patterns + core OS/concurrency facts. PM: 3 STAR stories with numbers, 5 questions to ask, one market-making game with a friend.

8Why people get rejected at Two Sigma#

  1. Silent coding. They solved it but never explained the reasoning. The interviewer could not tell what the candidate actually understood, so the right answer got a weak score.
  2. Weak probability. Strong coders who froze on a basic expected-value question. This is a quant firm, that gap is fatal, and it is the most common reason a good engineer gets a no here.
  3. Can't state complexity. Right code, but no idea if it is O(n) or O(n log n). At a latency-obsessed firm that is disqualifying, because it means you cannot reason about cost.
  4. Memorized, can't defend. Spat out a known solution, then could not adapt when the interviewer changed one constraint. They change constraints on purpose to catch exactly this.
  5. Ego over curiosity. Dismissive of a hint, argued instead of updating. It clashes directly with the open/humble culture, and it predicts a bad teammate.
  6. No real interest in the firm. No questions, no idea what Two Sigma does, treated it like any big tech loop. "I just want a great comp package" is not a reason they hire for.

9The offer, comp and negotiation#

Comp here is among the best in the industry, and it is heavily bonus-weighted, especially on the quant side. The variable number is the real story, so judge an offer by expected total, not base.

  • US new grad SWE: usually ~$175k to $215k base, with sign-on and bonus often pushing first-year total to $250k to $350k+.
  • US quant (researcher/dev): base similar, bonus can be a multiple of it. Strong hires land $300k to $500k+ total, and senior quant comp goes well beyond.
  • London: base often £90k to £130k for SWE, with meaningfully higher total for quant roles.
  • India/APAC: a smaller and more selective footprint. Expect top-of-market local comp, not US figures. (Hedge: offerings here shift year to year.)

Negotiation tips:

  1. Get a competing offer if you can. Jane Street, Citadel, HRT, Jump, and big tech are the comps that move Two Sigma's numbers. A real alternative is your strongest lever, and a vague "I've heard the market is higher" is not.
  2. Negotiate the bonus and sign-on, not just base. At a bonus-heavy firm, the variable number is where the room is. Ask how bonus is determined and what a strong year looks like, so you can compare offers on expected total and not get anchored on base.
  3. Be calm and specific. "Based on my competing offers and the level, I was hoping to land closer to X" works. Entitlement does not. Their recruiters are experienced, and the culture rewards the same openness you showed in the loop, so treat negotiation as another signal of how you would collaborate.

10FAQ#

Do I need a finance background? No. Plenty of SWEs and even quants arrive from pure CS or physics/math with zero finance. Curiosity about markets and data beats a finance resume, and if anything they would rather teach you markets than un-teach bad habits.

How hard is the OA? Two or three problems, LeetCode easy-to-medium, sometimes a math/probability section. It is a filter for speed and correctness. Do not let a silly bug cost you, test before submitting and watch the edge cases on empty and single-element inputs.

How much probability do I really need as a SWE (not quant)? Enough to handle expected value, basic conditional probability, and a simple market-making game without freezing. You will not get the full quant battery, but the flavor shows up, and freezing on it stands out in a bad way.

Is it C++ or Python? Both exist. Latency-sensitive and infra roles lean C++. Data, research tooling, and platform work use a lot of Python. Interview in whatever language you are strongest in, unless the role explicitly demands C++, and if it does, make sure your memory and concurrency answers are solid.

Do they hire new grads and interns seriously? Yes, very much. The internship-to-return-offer path is one of the best routes in. Apply early, a year ahead of when you want to start, because the strongest seats are gone by winter.

Follow-ups the interviewer will ask (and your answers)
"Make me a market on the number of heads in 100 fair-coin flips."
Expected value is 50, so I quote around it with a modest spread: 48 bid, 52 ask. If you hit one side hard, that is information: a counterparty leaning on my bid suggests the true value sits lower, or that I am offering size I should not, so I shift or widen rather than just fill. The point is that I treat your action as a signal and update, not that I nail a number.
"Positive test, 1% base rate, 5% false-positive rate. What's the chance you're sick?"
Base rate dominates. P(sick | positive) = P(pos | sick) P(sick) / P(pos). With a low prior and a nontrivial false-positive rate, most positives are false alarms, so the real probability stays well under 50% even on a positive. I plug the numbers out loud so you see I respected the prior instead of reading the test at face value.
"Your ingest pipeline is getting a burst that overruns the buffer. Now what?"
The bounded ring buffer is where backpressure lives, so under extreme burst I have exactly three honest options: drop, sample, or spill to disk. Which one depends on the business. For live trading signals, a stale quote is worse than a missing one, so I would drop or sample the oldest. For an audit feed, I spill to disk and replay. I name the tradeoff rather than pretend the buffer never fills.
"Why would market data ride UDP instead of TCP?"
Because a late packet is worse than a lost one. TCP's retransmit and in-order delivery add latency and head-of-line blocking, and a quote that arrives 20ms late is useless anyway. UDP lets us tolerate a dropped quote and keep the stream current, with sequence numbers and gap-fill at the application layer when we need recovery.
"I changed one constraint: the input now streams and won't fit in memory. Redo it."
Good, this is where memorized answers break. I switch from an in-memory pass to a streaming structure: for a running median that means two heaps maintained incrementally, for top-K a bounded heap, for dedup a sketch instead of a full set. I restate the new complexity and the memory bound out loud, because adapting to the changed constraint is the actual test here.

What you can now explain in the room

  • Why this is a research firm that trades, and why your probability instinct is graded as hard as your code.
  • How to win a coding round by narrating: approach, complexity, the rejected option, and self-testing out loud.
  • How to make and update a market, set up expected value, and respect the base rate in a Bayes problem.
  • How to sketch a market-data pipeline and name backpressure, UDP, point-in-time data, and the real bottleneck.
  • Which CS fundamentals they drill (concurrency, OS, DBMS, networking) and how to answer the "why" not the definition.
  • How the comp is bonus-weighted, and how to negotiate on expected total with a real competing offer.

When you're ready, map these rounds onto your actual calendar and build a dated plan backward from your interview date, so probability, DSA, and fundamentals each get real time instead of a last-minute scramble.

Get a prep plan built around your Two Sigma interview

Tell us the role and your interview date. We will send back a dated, day by day plan. Free.

Thanks. Check your inbox, your Two Sigma prep plan is on the way.