← Back to blog Two Sigma OA Full Debrief: CodeSignal + Coding + Data Analysis
Two Sigma

Two Sigma OA Full Debrief: CodeSignal + Coding + Data Analysis

2026-05-30

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.

Two Sigma OA flow overview

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:

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:

# 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