What to Expect from a Hudson River Trading Interview
Hudson River Trading - HRT to almost everyone in the industry - is one of the most respected algorithmic trading firms in the world. Founded in 2002 in New York and now spanning offices in London, Singapore, Boulder and Austin, HRT trades roughly 10% of all US equity volume and meaningful share of global liquid markets. The firm is engineering-led to its core, and the interview reflects that. Candidates regularly describe HRT's coding interviews as harder than FAANG.
This guide walks through HRT's process for software engineer, quantitative researcher and quantitative trader roles, the question types that come up, and a six-week preparation plan that maps onto the Quantt coding tests.
HRT at a Glance
- Founded: 2002 by Jason Carroll, Suhas Daftuar, Alex Morcos and Mark Petrich
- Headquarters: New York, New York
- Size: ~800 employees globally
- What they trade: Roughly 10% of US equity volume; market making and proprietary strategies across global equities, ETFs, futures and options
- Roles they hire: Software Engineer, Algo Engineer, Quantitative Researcher, Quantitative Trader, FPGA Engineer, Core Engineer
- Application route: careers page or via the Hudson River Trading firm page on Quantt
For broader context on HRT's history and place in the algo trading landscape, see our Hudson River Trading guide.
The Interview Process
Stage 1: Online Assessment
For software engineer and algo engineer candidates, a HackerRank-style assessment with two or three hard problems in 90 minutes. The problems are deliberately tighter than FAANG OAs - HRT cares about both correctness and speed. For quant researcher candidates, a probability and statistics test of similar length.
Stage 2: Phone Screen
A single 60-minute call with a working engineer or researcher. Live coding in a shared editor (typically CoderPad). The interviewer will probe complexity, edge cases and your reasoning - they care more about how you think than whether you finish the problem.
Stage 3: Final Round Onsite
Five to six interviews in a single day, usually in New York. The format includes coding (algorithm and systems), a research discussion, an architectural design, and a behavioural conversation with a more senior engineer or trader.
Stage 4: Final Conversations and Team Matching
After offers extend, candidates meet with several teams to find the best fit. Compensation is fixed at the firm-wide level for your tier; the team is your choice.
Offers usually arrive within 2 weeks of the onsite.
How Interviews Differ by Role
Software Engineer (Core Engineering)
Algorithmic difficulty is the main filter. Expect questions at the harder end of LeetCode (medium-hard to hard) plus systems design questions specific to trading infrastructure - order books, market data normalisers, real-time risk systems.
Typical split: 50% coding, 25% systems design, 15% C++ specifics, 10% behavioural.
Algo Engineer
A blend of software engineering and quantitative research. Expect coding questions plus questions about trading signal design, backtesting methodology, and how to handle real-world data quality issues.
Quantitative Researcher
The most academic of HRT's tracks. Heavy on statistical inference, time-series modelling, and signal design. Many of HRT's researchers have applied maths or physics PhDs.
Quantitative Trader
Less common at HRT than at SIG or Optiver - HRT's trading is heavily automated, so the trader role is closer to a researcher with operational responsibility. Expect questions on probability, market microstructure and risk management.
Real Question Types
Coding (Engineering Roles)
Question 1: Stream median
Implement a class that supports add(x) and median(), both with sub-O(n) complexity per call.
import heapq class StreamMedian: def __init__(self): self.lo: list[int] = [] # max-heap (negated) self.hi: list[int] = [] # min-heap def add(self, x: int) -> None: heapq.heappush(self.lo, -x) heapq.heappush(self.hi, -heapq.heappop(self.lo)) if len(self.hi) > len(self.lo): heapq.heappush(self.lo, -heapq.heappop(self.hi)) def median(self) -> float: if len(self.lo) > len(self.hi): return -self.lo[0] return (-self.lo[0] + self.hi[0]) / 2
Two heaps, kept balanced. Add and rebalance is O(log n); median is O(1).
Question 2: Race conditions You have two threads incrementing a shared counter 1 million times each. The counter ends at less than 2 million. Why?
Approach: Read-modify-write race. counter++ is not atomic - a thread can read 5, get pre-empted, another thread reads 5, both write 6. Solution: std::atomic<int> in C++ or a mutex. Bonus points for discussing memory ordering and why memory_order_relaxed would be sufficient here.
Probability and Statistics
Question 3: Independence You have two independent random variables X and Y, both uniform on [0, 1]. What is the probability that X + Y < 1?
Approach: Geometric. The sample space is the unit square; the event is the triangle below the line x + y = 1. Area is 0.5.
Question 4: Expected value with stopping A coin lands heads with probability p. You flip it repeatedly. What is the expected number of flips to see two consecutive heads?
Approach: States. E0 = 1 + (1-p) * E0 + p * E1; E1 = 1 + (1-p) * E0 + p * 0. Solve to get E0 = (1+p) / p^2. For p = 0.5, that's 6.
Systems Design
Question 5: Real-time risk Design a service that consumes a real-time order flow feed, computes per-trader and per-strategy P&L and risk exposures, and alerts when limits are breached. Latency budget: 1 millisecond per event.
Approach: Single-writer threading per shard. Lock-free queue from the feed reader to the risk engine. Pre-allocated risk objects, no allocation on the hot path. Limit checks via a precomputed sorted set per shard. Alerts go to a separate slow-path thread to avoid blocking the hot path.
Behavioural
Question 6: Disagreement Tell me about a time you strongly disagreed with a team member's technical approach. How did you resolve it?
Approach: HRT values intellectual honesty highly. Describe the disagreement specifically, the evidence each side brought, and the outcome. Avoid stories where you were "obviously right" - they want to see you grappling with genuine uncertainty.
How to Prepare - A Six-Week Plan
Weeks 1-2: Foundations. For engineering candidates, work through 100 LeetCode hard problems with a strict time budget. For research candidates, work through chapters 1 to 7 of A Practical Guide to Quantitative Finance Interviews (Xinfeng Zhou).
Weeks 3-4: HRT-specific. For engineers, deepen your C++ memory model knowledge (Scott Meyers' Effective Modern C++, Anthony Williams' C++ Concurrency in Action) and read up on lock-free data structures. For researchers, deepen your statistical modelling and read Algorithmic and High-Frequency Trading by Cartea, Jaimungal and Penalva.
Weeks 5-6: Mock interviews. Three full timed mock onsites under realistic conditions. The cognitive load of six back-to-back hard interviews is itself part of what is being tested.
For broader market-microstructure context, see our market microstructure guide, and for the engineering side, our C++ in quantitative finance and hardware acceleration for quant guides.
What HRT Looks For Beyond Technical Skill
HRT's culture is engineering-driven and almost academic. Three traits matter most.
Curiosity for the problem itself. Candidates who solve the question quickly but can't explain why their solution is interesting tend to fail. Candidates who solve slowly but show genuine engagement with the problem - exploring extensions, edge cases, or alternative formulations - often pass.
Comfort with ambiguity. Many of HRT's research questions are deliberately under-specified. The candidates who do well ask clarifying questions, propose assumptions, and continue from there. The ones who freeze when there is no obvious answer struggle.
Engineering taste. This is hard to fake and hard to teach. Reviewers can tell within minutes whether a candidate's code is structured by someone who has spent time thinking about clarity, or just someone who has memorised patterns.
For broader context, see our quantitative analyst career guide.
Compensation & recruiting notes
Pay ranges in this guide are illustrative estimates from publicly discussed bands and anecdotal reports - not official figures from the employer. Packages vary widely by desk, office, performance, and year. Hiring processes change; nothing here guarantees an interview, assessment format, or offer.
Frequently Asked Questions
How hard is it to get an HRT interview?
Very. HRT hires roughly 80 to 120 graduates globally each year and receives over 30,000 applications. The OA bar is genuinely high - typical pass rates are around 5 to 10%. Strong campus recruiting at MIT, Princeton, CMU, Stanford, Cambridge, Imperial and a handful of others is the most reliable path in.
Does HRT hire from non-target universities?
Yes, but less commonly than firms like Jane Street or Citadel. Non-target candidates need exceptional signals: Codeforces 2400+, ICPC World Finals participation, or genuinely impactful open-source work. The OA itself is widely regarded as meritocratic - candidates who score in the top few percent often receive interview invitations, but processes vary and nothing is guaranteed.
What programming languages should I know for an HRT interview?
C++ is the firm's primary language and is essentially required for software engineer and algo engineer roles. Python is required for research roles. Rust appears in some newer projects. Familiarity with kdb+/q is a plus for some teams.
How does HRT's compensation compare to other quant firms?
HRT is consistently among the top-paying firms globally. Graduate engineers typically receive $300,000 to $500,000 in their first year, with senior engineers and researchers earning into the seven figures. Compensation includes a performance-linked bonus that can scale significantly. See our quantitative analyst salary guide for cross-firm comparison.
How many interview rounds does HRT have?
The standard process is OA, one phone screen, and a final-round onsite with five or six interviews. After the offer, candidates spend time meeting potential teams.
What is the difference between HRT and Jane Street?
Both are extremely selective and engineering-driven. Jane Street uses OCaml across the firm and has a more academic culture. HRT uses C++ for its hot-path systems and has a slightly more traditional engineering culture. Compensation is broadly similar. We have a dedicated Jane Street interview guide.
Can I reapply if rejected?
Yes, after 12 months. HRT takes repeat candidates seriously and feedback is sometimes provided through the recruiter for candidates who reach later stages.
Practise the questions Hudson River Trading Interview: Process, Questions and Prep 2026 actually asks
Reading about the interview is one thing - sitting one is another. Quantt's interactive coding tests are modelled on the same problem types that show up in firms like Jane Street, Citadel, Hudson River and Optiver. Run real Python in the browser, get instant feedback, and benchmark yourself against the bar.
Free to start - no credit card required