Quant interview preparation
Prop market making and quantitative research, weighted the way the interviews actually are: probability and expected value, statistics and machine learning, market making logic, programming and options. Every question is either traced to a named firm from a public candidate report, or tagged at desk level when we could not trace it, and every probability answer shows the reasoning path rather than just the number.
100 questions, mapped to the firms that asked them
- Questions
- 100
- Traced to a firm
- 53
- Firms
- 15
- Updated
- September 2026
076You have K sorted arrays on disk, too large to load at once. How do you merge them into one sorted output?CitadelEquity Capital Markets · New York · 2026
Say this
K-way merge with a min heap of size K. Push the first element of each array into the heap, repeatedly pop the minimum and write it out, then push the next element from whichever array the minimum came from. Time is N log K, memory is O(K) plus your buffers.
Then walk it
- The heap holds one candidate per array, each entry tagged with which array it came from and the index within it. Pop the smallest, emit it, and refill from that same array.
- Complexity: N total elements, each pushed and popped once, each operation log K. So N log K, which beats concatenate-and-sort at N log N whenever K is much smaller than N.
- The disk part is the real content of the question. You do not read element by element, you read blocks. Keep a buffer per array, say a few megabytes each, refill it when it drains, and write the output through a large buffer too. The heap operations are free compared with I/O, so the design goal is sequential reads and few of them.
- If K is very large, K times the buffer size exceeds memory, and then you merge in passes: merge groups of, say, 100 files at a time, then merge the results. That is exactly how external merge sort works, and total I/O is N times the number of passes.
- Practical notes I would raise: use a tournament tree or a loser tree instead of a binary heap if you want fewer comparisons per element, handle the tie-breaking rule explicitly if stability matters, and if this is a real system, check whether the operating system's readahead is already doing your buffering for you before you build it yourself.
Where candidates lose it
Answering merge them pairwise, which is K times N in the worst case, or ignoring the on-disk part entirely. The interviewer put the data on disk deliberately, so talk about block-sized buffered reads and what happens when K is too large to buffer. State the N log K complexity explicitly.
Expect next
- What if K is a million?
- How large would you make the buffers, and why?
- How would you parallelise it?
Reported by candidates at Citadel (Equity Capital Markets, New York, 2026). Source: Wall Street Oasis.
084How would you design a system to troubleshoot latency in a trading stack?CitadelProp Trading · New York · 2026
Say this
Timestamp at every hop with one clock, measure distributions not averages, and make the whole path attributable so you can say which segment consumed the microseconds. The design principle is that you cannot fix what you cannot decompose.
Then walk it
- Instrumentation: hardware timestamps at the network card for packet in and packet out, plus software timestamps at each stage, market data decode, book update, strategy decision, order encode, and kernel bypass send. Carry a correlation id through the whole chain so a single event can be reconstructed end to end.
- Clocks are the hard part. Use PTP with hardware timestamping across hosts, not NTP, and record clock offset and drift as first-class data. Two hosts disagreeing by fifty microseconds will invent latency that does not exist and hide latency that does.
- Statistics: report the median, the 99th, the 99.9th and the maximum. Averages are useless here because the distribution is heavily right-tailed and the tail is exactly what costs money. Track per-segment histograms, ideally with HDR histograms so the tail resolution survives.
- Storage and analysis: stream the records off the critical path into a time-series store, then build the two views that actually get used, a per-segment breakdown over time and a drill-down into the slowest individual events. Alert on percentile regressions against a rolling baseline rather than on fixed thresholds.
- Then the causes to design for, because the system exists to distinguish them: garbage collection or allocation pauses, page faults, context switches and CPU migration, interrupt coalescing settings, cache misses and false sharing, queueing at the exchange gateway, and simple network congestion. And I would say the measurement must not itself be on the hot path, so lock-free ring buffers with a separate reader thread, because an observability system that adds ten microseconds has destroyed what it measures.
Where candidates lose it
Describing logging and monitoring generically. This is a specific systems question and the differentiators are clock synchronisation, percentile rather than mean reporting, and keeping instrumentation off the critical path. Talk in microseconds, and be able to name concrete causes of a tail latency spike.
Expect next
- How do you synchronise clocks across hosts, and to what accuracy?
- Why report the 99.9th percentile rather than the average?
- Walk me through diagnosing a spike that happens once a day.
Reported by candidates at Citadel (Prop Trading, New York, 2026). Source: Wall Street Oasis.
Firm tags come from public, anonymous candidate reports on Wall Street Oasis: strong signal, not sworn testimony. Firms are named as the places a question was reported, not as partners of Fin Maverick. Answers are written for this page to show how to think out loud; they are not scripts to recite.

