Two Sigma runs one of the densest OAs on the quant street. Unlike Citadel, which splits the OA into several discrete stages, Two Sigma often packs algorithms, data analysis, probability reasoning, and behavioral assessment into one or two 70-90 minute windows, asking the candidate to demonstrate multiple skills simultaneously. This guide threads our existing Two Sigma Quant Engineer CodeSignal walkthrough and the Two Sigma OA IPO/Sewer breakdown into a single OA debrief.

End-to-end flow: 3-4 weeks
W0 Application (career site / referral / Hireright)
W1 OA invite (72-96h window)
W2 Pass → Phone screen (45 min, technical + project)
W3 Onsite (5 rounds: coding + data analysis + probability + behavioral + project)
W4 team match → offer decision
The 72-96 hour window in W1 is the critical zone. Two Sigma rarely tells you the exact mix in the email — most candidates only learn whether it's a "90-minute mixed paper" or a "60-minute pure algorithms" set after they open the link. As soon as the invite arrives, block a clean 2-hour slot.
Three question families
Family 1: pure algorithms (Quant Engineer / SWE lines)
See our Two Sigma Quant Engineer CodeSignal walkthrough for a 70-min, 4-question set ramping in difficulty. Two Sigma's CodeSignal differs from HRT's:
| Dimension | Two Sigma | HRT |
|---|---|---|
| Length | 70 min | 70 min |
| Q1 difficulty | Easy (warm-up) | Easy (warm-up) |
| Q2 difficulty | Medium-Hard | Medium |
| Q3 difficulty | Hard (graph / DP) | Medium-Hard (number theory) |
| Q4 difficulty | Hard+ (composite) | Hard (composite) |
| Cutoff | ~80 | ~78 |
Two Sigma's Q2 is harder than HRT's; candidates often start losing points already on Q2.
Family 2: coding + data analysis hybrid
IPO Share Allocation + Sewer Drainage is the canonical example of this hybrid. Not pure LeetCode — the question requires:
- Domain modeling: translate the IPO allocation rule into code
- Data structure choice: heap / sorted list / array based on input scale
- Edge coverage: negative values / zero allocation / overflow / tie-break
A typical "IPO allocation" skeleton:
import heapq
def ipo_allocate(orders: list[tuple[int, float]],
supply: int) -> dict[int, int]:
"""
orders: [(client_id, weight), ...]
supply: total shares to distribute
Apply weighted ratio + integer split + tie-break by client_id.
"""
total_weight = sum(w for _, w in orders)
raw = [(cid, supply * w / total_weight) for cid, w in orders]
base = {cid: int(amount) for cid, amount in raw}
leftover = supply - sum(base.values())
# Sort by fractional part desc, tie-break by client_id asc
fractions = sorted(
((amount - int(amount), cid) for cid, amount in raw),
key=lambda x: (-x[0], x[1])
)
for _, cid in fractions[:leftover]:
base[cid] += 1
return base
The shape is not deep, but tie-break logic is the leading source of point loss. Two Sigma reviewers grade hard on fractional-part handling and sort stability.
Family 3: data analysis (Quant Researcher / Modeling lines)
Only QR / Modeling / Data Science candidates see this. The prompt provides a CSV or SQL dataset and asks for:
- Top-K rows by a derived metric
- Rolling-window statistics
- Correlation / regression / time series
- Data cleaning + missing-value handling
# Two Sigma QR-style rolling factor
import pandas as pd
def momentum_factor(df: pd.DataFrame, window: int = 20) -> pd.Series:
"""
20-day momentum factor: (P_t - P_{t-window}) / P_{t-window}
Returns: factor series aligned with df.index
"""
return df["close"].pct_change(window)
QR candidates can use pandas / numpy / sklearn, but pre-built quant libs (e.g. zipline) are off-limits.
OA path by role line
| Role line | OA format | Length | Mix |
|---|---|---|---|
| Quant Engineer | CodeSignal GCA | 70 min | 4 algo questions |
| Software Engineer | CodeSignal GCA | 70 min | 4 algo questions |
| Quant Researcher | Data analysis | 90 min | 1-2 data + 1 probability |
| Modeling | Data + algo | 120 min | hybrid |
| Data Science | SQL + Python | 90 min | SQL + pandas |
| Trading Intern | Probability + coding | 60 min | 8-10 probability + 1 coding |
90-minute mixed paper time budget
00:00 - 00:10 Read all questions → estimate difficulty
00:10 - 00:25 Q1 (algo warm-up) → 100% AC
00:25 - 00:50 Q2 (data analysis / domain modeling) → 80%+ AC
00:50 - 01:20 Q3 (composite hard) → 50%+ AC
01:20 - 01:30 Loop back for edge cases
A mixed paper is harder to time-budget than pure algorithms — different question families have different return-on-time curves. Anchor a hard switch at the Q2 → Q3 boundary so you don't sink into one prompt.
Recommended prep path
| Phase | Focus | Resources |
|---|---|---|
| 0-1 week | LeetCode fundamentals + CodeSignal warm-up | LeetCode top 75 |
| 1-2 weeks | Full CodeSignal arcade clear | CodeSignal Arcade |
| 2-3 weeks | Two Sigma debriefs + data analysis | 1point3acres + Kaggle |
| 3-4 weeks | Probability + mental math | Heard on the Street + 50 Nuts |
| Post-week 4 | Timed mocks | self-timed 90-min mixed paper |
Cross-firm comparison: Two Sigma vs HRT vs Citadel
| Dimension | Two Sigma | HRT | Citadel |
|---|---|---|---|
| Algorithm bias | composite + domain modeling | number theory + speed | simulation + data structures |
| Data analysis | QR line always | none | quant line occasionally |
| Probability | Trading line always | Algo line always | Quant line always |
| OA length | 70-120 min | 70 + 60 min | 70 min |
| Pass rate | ~15% | ~20% | ~18% |
If three OAs land at once, take Two Sigma first — it's the broadest mix, and the others feel lighter afterwards.
FAQ
Q1: What's Two Sigma's CodeSignal cutoff? A: SWE / Quant Engineer ≈ 80. Below 75 rarely reaches a phone screen. QR uses a different rubric.
Q2: Which language for the data-analysis paper? A: Python (pandas / numpy / sklearn) is the default. R / Julia are accepted but not advised — reviewers focus on Python.
Q3: Can I look up docs during the OA? A: stdlib docs yes; LeetCode solutions or external code no — submission goes through similarity detection.
Q4: How long do I have after receiving the invite? A: 72-96 hours. If you genuinely cannot finish, email the recruiter — a 24-48 hour extension is usually granted once.
Q5: What's a typical Two Sigma new-grad base? A: SWE / Quant Engineer NG base around $200K plus sign-on / equity. Final terms via offer letter.
Closing
Two Sigma's OA is a multi-axis evaluation: algorithms + data + probability + engineering + domain modeling all matter. If you're prepping for it, message WeChat Coding0201 with your role line and invite screenshot — we'll triage the role line first, then chart a prep path.
Need real-question intel? Reach out on WeChat Coding0201, request the question bank.
Contact
- WeChat: Coding0201
- Email: [email protected]
- Telegram: @OAVOProxy