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 a meaningful share of global liquid markets. The firm is engineering-led to its core, and the interview reflects that.
HRT's own FAQ sums up the process in one line: "Technical interviews at HRT usually consist of a coding test, 1-2 technical phone screens, and an onsite multi-round final interview. Interview length and topics can vary depending on the role." This guide fills in what candidates report for the two main tracks, Algorithm Developer and Software Engineer, 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: Market making and proprietary strategies across global equities, ETFs, futures and options
- Roles they hire: Algorithm Developer (HRT's name for quantitative research and trading), Algorithm Engineer, Software Engineer (including the Core Development team) and FPGA engineers
- 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
A few official ground rules first. HRT asks you to allow up to two weeks for your application to be reviewed, and you may apply to only one posting. Algorithm Developer candidates choose between C++ and Python for interviews; software engineering candidates state a language preference when they apply. HRT's intern posting says use of AI tools in interviews or assessments is "strictly prohibited".
Stage 1: Coding Test
Older reports describe the test arriving automatically after applying in the US ("HRT is auto OA", December 2024). More recent ones do not: in the 2025 and 2026 cycles candidates describe rejections before the test, rejections after full scores and a second CV screen after it. Treat the test as one filter, not a guaranteed route to an interview. The format differs by role and year; the Algorithm Developer version is covered in detail below.
Stage 2: Technical Phone Screens
One or two, according to HRT's FAQ. Engineering screens are live coding. Algorithm Developer screens are typically one statistics interview and one coding interview.
Stage 3: Onsite Final
A multi-round final. For engineers, HRT's own engineering blog (2 October 2025) describes "coding and debugging rounds, technical design discussions, and team fit", says the firm "much prefer[s] at least some" of the onsite in person, and says it avoids "burst of insight" LeetCode-style questions. For Algorithm Developer interns, candidates describe four one-hour rounds.
Did you know?
Tap a tile for a quick interview snippet — then keep going.
The Algorithm Developer Interview
Algorithm Developer is HRT's name for the quant research and trading role, and it is the track most candidates are asking about.
What the Role Is
In HRT's words, Algorithm Developers "are responsible for building and maintaining the models that drive our trading, relying on quantitative (mathematics, statistics, data analysis) and technical (C++/Python programming) skills". A typical day "involves applying rigorous statistical analysis to vast quantities of market and financial data to produce predictive trading models". They also "run models live on our high-performance trading infrastructure, and analyze their daily performance".
HRT's engineering blog describes Algo Development as separate from engineering: algo teams are "the customer all engineers work to support", they are "not a 'pod' system", and they are "roughly organized by the time horizon at which they trade, and then by asset class and region".
Two neighbouring roles get confused with it:
- Algorithm Engineers are "responsible for making the Algo team's research tools and trading platform powerful, flexible, fast, and easy to use". They are engineers who work closely with Algorithm Developers.
- Software Engineers on the Core Development team work on HRT's trading system, which HRT describes as "on the Pareto frontier of latency and throughput", developing "deep knowledge of C++, OS internals, CPU architecture, and networking".
The Summer 2027 internship has interns "rotate between our high- and mid-frequency trading teams, as well as our machine learning teams". Python "is a must; C++ is desired for those interested in low-latency trading". The posting lists weekly base pay of $5,800 in New York, £4,350 in London and SGD 7,650 in Singapore, and the 2027 graduate posting gives a US base salary of $300,000. See our HRT internship guide for every 2027 programme. Those are HRT's own posted figures; total pay with bonus will differ.
The Coding Test
Reports on the Algorithm Developer OA disagree on length and content:
- Full-time, 2024: 150 minutes, three problems (a "fancy number" counter, a union-find problem and a tree merge). A commenter in the same thread said their intern invite gave one hour 10 minutes.
- Intern, October 2023: "LC medium/hard. No pandas, only algorithm questions."
- London, March 2023 (second-hand): "90 mins… 3 hard leetcodes and 1 pandas question".
So expect roughly two to three algorithm problems at LeetCode medium to hard, possibly with a data question, and read your invite for the time limit. The platform is not confirmed.
The "fancy number" problem is reported in more than one place. A positive integer is fancy if its base-4 representation uses only the digits 0 and 1. Count the fancy numbers below n, for n up to 10⁹. The trick is that fancy numbers are binary strings read in base 4, and since 4¹⁵ is just over 10⁹ there are at most 2¹⁵ = 32,768 of them. Reading binary in base 4 preserves order, so you can enumerate them in increasing order and stop:
def count_fancy(n: int) -> int: # Positive integers below n whose base-4 digits are all 0 or 1. count, mask = 0, 1 while True: value, bits, power = 0, mask, 1 while bits: if bits & 1: value += power bits >>= 1 power *= 4 if value >= n: return count count += 1 mask += 1
For n = 5 this counts 1 and 4, then stops at 5 (binary 11, base-4 11). The interviewer will want the complexity: at most 2¹⁵ masks of about 15 digits each, which is trivial. If they push, a digit-by-digit count over n's base-4 digits gets it in O(log n).
The Phone Screens
A Glassdoor Algorithm Developer review describes "automated screening of mainly coding challenges, followed by 2 rounds of virtual interviews. One was highly stats based and the other was a coding interview. Took about 3 weeks." An intern candidate describes "one coding OA and two math online interviews" on probability, combinatorics and the Central Limit Theorem. A January 2026 report describes a first round of a "basic stats question + coding part where you run simulation to check your intuition".
Reported statistics questions include finding an "estimator of a quantity and to tell if the estimator is biased or not" and deriving "the probability of some order statistic". Here is one question that covers both (our example, in the reported style):
You observe n independent draws from Uniform(0, θ). Estimate θ. The maximum M is the natural estimator. P(M ≤ x) = (x/θ)ⁿ, so M has density n xⁿ⁻¹ / θⁿ and E[M] = nθ/(n + 1). It is biased low, because the maximum can never exceed θ. The unbiased version is (n + 1)M/n. Then check it the way HRT candidates describe: simulate 10,000 samples of size 10 and confirm the average of M sits near 10θ/11.
The Intern Onsite
One detailed intern report describes four one-hour rounds, with the day cut short after the morning if it is not going well:
- Programming: given an existing C++ client and server trading codebase that supports adding and cancelling orders, implement modify.
- Data analysis: a heart-disease prediction dataset in a Jupyter notebook using pandas and seaborn, with documentation allowed.
- System design.
- Maths.
A prep site separately reports a notebook-based data analysis round, so that part is corroborated. We found no dated candidate report of a full-time Algorithm Developer onsite, so its structure is unknown. Some sources claim Algorithm Developer rounds test cache behaviour and latency, but HRT describes the role as statistics and modelling, so treat that as unverified.
For the statistics side, our quant research interview questions and probability interview questions are the closest match. For the data round, practise in pandas on our Python playground.
The Software Engineer Interview
HRT's engineering blog describes Trading Tech (latency-focused, about 70% C++) and Research & Development (scale-focused, about 70% Python), each with acceleration and platform teams. The interview is built around coding, debugging and design rather than puzzles. The firm says it avoids "burst of insight" LeetCode questions, so expect problems that reward clean, correct code you can extend and debug, plus systems design questions specific to trading infrastructure: order books, market data handlers and real-time risk systems.
For low-latency roles, C++ depth matters: memory layout, concurrency and the cost of what your code does. Our C++ quant interview questions cover that ground.
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.
Quick quiz
HRT-style systems check
Latency intuition and coding fundamentals.
False sharing typically hurts performance when…
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. For Algorithm Developer candidates, include a notebook data analysis round and a round extending someone else's code, since both appear in intern reports.
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, though HRT does not publish hiring numbers or pass rates. The coding test was once reportedly sent automatically in the US, but recent candidates describe a CV screen as well, so both are real filters. 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?
Algorithm Developer candidates choose between C++ and Python for interviews, and HRT's internship posting says Python "is a must; C++ is desired for those interested in low-latency trading". For software engineering, HRT's blog puts Trading Tech at about 70% C++ and Research & Development at about 70% Python. 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?
HRT's FAQ says technical interviews "usually consist of a coding test, 1-2 technical phone screens, and an onsite multi-round final interview", varying by role. Algorithm Developer candidates typically describe one statistics screen and one coding screen, and intern candidates describe a four-round onsite.
What is the HRT Algorithm Developer interview like?
A coding test (reports range from 70 to 150 minutes, mostly LeetCode medium to hard), then a statistics interview and a coding interview, then an onsite. Intern onsites are reported as four one-hour rounds: extending a C++ trading codebase, a pandas data analysis in a notebook, system design and maths. Candidates choose C++ or Python.
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?
HRT does not publish a waiting period, so check with the recruiter for your cycle. Note that you may apply to only one posting at a time, so choose the role carefully.
Practise the questions HRT Interview: Process, Algo Developer & SWE Questions actually asks
Reading about the interview is one thing - sitting one is another. Open your free Quantt prep workspace for a real course lesson plus interview-style coding tests modelled on firms like Jane Street, Citadel, Hudson River and Optiver.
Free lesson + interview practice · Or code free in the browser