HackTheRounds Interview Experiences

Jane Street Software Engineer Interview Experience (2026) - Order Book, Bayesian & Stat Arb

Jane Street SWE 2026 loop: 20 sided die optimal stopping, order book design, market making quotes, Bayesian urn, pairs summing to zero, stat arb strategy, and b

By Anonymous · 2026-03-16

Background

Three phone screens, a full-day VO with five back-to-back rounds, and four behavioral chats later, I still do not know if I got an offer from Jane Street. I applied in January after a friend of mine who now trades there walked my resume over to a recruiter. Jane Street's process is the longest and densest I've been through, with a strong bias toward probabilistic reasoning, strategy design, and raw systems thinking. Half the interviewers had PhDs in math or physics.

Timeline

Phone Screens (60 min each)

Screen 1: Probability and Strategy

Problem: You roll a 20-sided die. You can roll up to 100 times. On each roll you can either take the current number as your payoff, or roll again. If you never take, the last roll's value is your payoff. Design the optimal strategy.

I started by suggesting a fixed threshold T: take any roll = T. For T=15, expected payoff given you take is (15+20)/2 = 17.5 but probability of taking on a given roll is (20-15+1)/20 = 0.3 . So expected payoff per roll attempt is a function of T.

The interviewer pushed back on the "last roll if never take" wrinkle. That changes the calculation because you can afford to let roll 100 happen. I re-derived by backward induction: let E k be the optimal expected payoff with k rolls remaining. Base case E 1 = 10.5 (mean of 1..20). Then E k = E[max(roll, E {k-1})] , which equals summing over roll values r in 1..20: (1/20) max(r, E {k-1}) .

So the threshold at each step is floor(E {k-1}) : you take if the current roll beats the expected value of rolling with the remaining budget. I computed a few values: - E 1 = 10.5 - E 2 = sum {r=1..20} (1/20) max(r, 10.5) ≈ 13.025 - E 3 ≈ 14.6 , converging to 19 as k grows large.

With k=100 remaining the threshold is essentially 19: only take a 20 or a 19. Followup: "Now the opponent controls rolls 50-100 and can force you to take the worst outcome." We spent the last 10 minutes deriving the game-theoretic equilibrium for that minimax variant.

Screen 2: Order Book Design

Problem: Design a data structure supporting add order(order id, price, quantity, side) , cancel order(order id) , and best bid() / best ask() . Analyze complexity.

Standard: two heaps (a max-heap for bids, a min-heap for asks), a hashmap from order id to its position and side, and lazy deletion on cancels. Best-bid/ask is the top of the heap, popping lazily-deleted entries as needed. Add is O(log n), cancel is O(1) on the hashmap and O(log n) amortized on the heap, best-bid is O(1) amortized.

The interviewer pushed on two fronts. First: what if multiple orders share a price? I switched to price-level aggregation, each heap entry is a price level, and within a level I maintain a FIFO queue of orders for time priority. Second: what if the book gets pathologically deep with lazily-deleted entries? I added a periodic compaction: if more than half the heap is lazy-deleted, rebuild from the hashmap.

Practice it: [[problem/564?company=34|Simple Order Book]]

Screen 3: Market Making Pseudo-code

Problem: You are a market maker on a single stock. Given a historical price series and a current inventory level, output bid and ask quotes that balance earning the spread with avoiding inventory risk.

I went with the classic Avellaneda-Stoikov reservation price model: r = S - q gamma sigma^2 (T - t) where q is inventory, gamma is risk aversion, sigma^2 is volatility, T-t is time remaining. Then bid = r - spread/2 , ask = r + spread/2 , with spread widening as volatility rises.

The coding piece was to implement this in Python against a provided price stream. I wrote a rolling-window vol estimator and a feedback loop that adjusts the reservation price as inventory drifts. 40 minutes total.

Practice it: [[problem/547?company=34|ETF Fair Value Calculator]]

Virtual Onsite (5 rounds)

Round 1: Bayesian Urn

Problem: Two urns. Urn A has 2 white balls. Urn B has 1 white, 1 black. You pick an urn uniformly at random, then draw a ball that turns out to be white. What is the probability it came from urn A?

P(A | white) = P(white | A) P(A) / P(white) = (1 0.5) / (0.5 1 + 0.5 0.5) = 0.5 / 0.75 = 2/3 . Straightforward Bayes. The followup extended it to 3 urns with different compositions and asked for the posterior after two draws (with replacement). Multiplicative Bayes update, same logic.

Round 2: Order Book Data Structure

Asked me to extend the order book from screen 2 to support get volume at price(p) in O(1). I added a hashmap from price to aggregated volume, updated on add/cancel. The interviewer verified the invariants and we moved to complexity analysis.

Round 3: Statistical Arbitrage Strategy

Problem: Given two stocks whose prices have historically been cointegrated, design a trading strategy that captures the mean-reverting relationship.

Full pipeline: Engle-Granger cointegration test, z-score the spread, enter at ±2 sigma, exit at 0, stop out at ±3. Hedge ratio from OLS of A on B. Nuances: transaction costs eat the signal, position sizing via volatility-scaled Kelly, and regime breaks monitored via rolling p-value to kill the strategy.

Round 4: Pairs Sum and Hash Table Depth

Problem: Given an array, find all pairs that sum to zero.

Sort then two-pointer for O(n log n). Or hash set for O(n). Followup was on the internals of the hash set: collision handling, load factor, how big-O degrades for pathological inputs, and when a BST-backed set outperforms. We spent 15 minutes comparing hash tables to balanced BSTs on specific workloads.

Practice it: [[problem/562?company=34|Find All Pairs That Sum to Zero]]

Round 5: Behavioral

Standard: why trading, why Jane Street over a big tech shop, describe a high-pressure decision, describe a time you were wrong and had to change your mind. The trick with Jane Street behavioral is they want to hear reflection more than achievement. "I was wrong and here's how I updated" plays well. "I crushed it" does not.

Result

Pending. Recruiter told me the loop was "in committee" and I would hear back in 10 business days. At day 9 as I write this. Regardless of outcome, the process was the most intellectually demanding I've been through, and I'd recommend preparing for Jane Street in a dedicated track rather than piggybacking on FAANG prep.

Tips

  1. Probability is Jane Street's oxygen. Make expected-value computation a reflex. Practice threshold-strategy problems, optimal stopping problems, coupon collector, gambler's ruin, and Markov chain return times until you can derive each from scratch. You will see a variant in every round.
  2. Order book design questions are nearly guaranteed. Internalize: two heaps + hashmap + lazy deletion, price-level aggregation for tie-breaking, time priority within a price level. Write this from memory in under 10 minutes.
  3. For market making questions, know one model well rather than name-dropping three. Avellaneda-Stoikov is enough. Be able to explain why inventory risk enters linearly in the reservation price, not quadratically, and what `gamma` means physically.
  4. Behavioral rounds want reflection. Rehearse "a time I was wrong." Jane Street hires self-critical thinkers. Story structure: my belief, the data that disagreed, how I updated, what I believe now. Avoid narratives where you were right the whole time.
  5. Know enough stats to not flinch on cointegration, Bayes, and measure-theoretic basics. You don't need PhD depth, but you should be able to derive a two-variable OLS regression and explain a t-test in plain language. They probe.
  6. Have a clean pseudocode style for live coding. Jane Street interviewers read your code like they read academic papers, they want it precise and compact. Favor named helper functions over inline hacks. Pre-allocate state at the top. Comment invariants.

Jane Street is a quant shop that hires engineers and an engineering shop that thinks like a quant fund. Prep for both modes simultaneously. Good luck to anyone in the loop.