Most people who don’t get an offer from Hudson River Trading didn’t fail because the problem beat them. They ran out of time, or their code didn’t compile on the first try and the interviewer noticed. HRT’s coding rounds are built to test whether you can write correct code fast, under a clock that’s tighter than anything at Google or Meta. That one fact should shape how you prepare.
HRT is a proprietary trading firm that trades a large share of US equity volume off its own capital, on a codebase that’s overwhelmingly C++ with a research stack in Python. It hires into a few distinct engineering tracks, and the interview you get depends heavily on which one your resume routes you into.
The two engineering tracks that decide your loop
The roles most candidates land in are Algorithm Developer and Core Developer, plus a more general software engineering track. Algorithm Developers sit close to the trading models: turning research into production signals, working alongside quants, writing numerical code that has to be fast and correct at once. Core Developers build the plumbing the whole firm runs on, the low-latency systems, the market-data handlers, the internal tooling, the places where a microsecond and a stray memory allocation actually change the outcome.
That split changes what gets tested. An Algo Developer loop leans on competitive-programming-style problems and quick numerical reasoning. A Core Developer loop pushes harder on C++ specifics and systems knowledge: what happens underneath when you allocate memory, how the cache behaves, what the kernel is doing during an I/O call. A rough breakdown candidates report is about half coding, a quarter systems design, fifteen percent C++ detail, and the rest behavioral. Tell the recruiter you want the systems role and then freeze when asked why false sharing wrecks a lock-free counter, and that’s a quick no.
The online assessment: two or three problems in ninety minutes
The screen almost everyone hits first is a HackerRank-style assessment, usually two or three hard problems in ninety minutes. The material is graph theory, dynamic programming, string manipulation, sometimes number theory, and the problems are set deliberately tighter than a FAANG online assessment. HRT wants to see correctness and speed together, not one traded off against the other.
These read like Codeforces problems, not LeetCode Easy. One 2026 candidate described a task that asked for the minimum excluded prime along paths in a tree, which meant gluing number theory onto a tree traversal and getting the complexity right on the first pass. Another common shape is a simulation: process a stream of timestamped trades and compute the running profit, or replay a sequence of events and answer queries about the resulting state. If you’ve only ground standard interview lists, the format alone will cost you time you don’t have.
The phone screen, where compiling code is the point
Pass the assessment and you get a 45 to 60 minute phone interview with a working engineer or researcher, live coding in a shared editor, usually CoderPad. The problems are similar in flavor to the assessment, but the bar shifts to how you work. They want code that compiles and runs, not pseudocode you promise to clean up later. Talking through your approach while you type helps, but only if the typing keeps pace.
This is where a lot of strong FAANG candidates stumble. At a big tech company you can sketch an approach, hand-wave a couple of edge cases, and still pass on communication. At HRT the person across the table often writes production trading code all day and will catch an off-by-one or a wrong container choice the moment it lands. Fluency in your language, usually C++ or Python, counts as much as the algorithm itself.
The onsite: five rounds with people who actually trade
The final stage is a sequence of one-on-one interviews, often around five, with quants and algo developers rather than a rotating cast of generalists. Expect more coding in the same competitive style, at least one systems or design conversation, and questions that blend coding with quantitative reasoning. A classic HRT move is to hand you something half algorithm and half math: implement a small simulation, price something numerically, or reason about the expected value of a game under time pressure.
Core Developer onsites push on the machine. You might be asked to reason about memory layout, cache lines, what a given C++ construct compiles down to, or how you’d shave latency out of a hot path. Algo onsites tilt toward probability and quick estimation, closer to what a quant researcher sees, though lighter than a pure trading interview. Behavioral time exists but it’s short and low-stakes; nobody is grading your STAR structure. They mostly want to know you can work with sharp people and won’t be a pain to sit next to.
| Interview stage | Format and length | What HRT is measuring |
|---|---|---|
| Recruiter screen | ~30-minute call | Background, motivation, and routing into the Algo, Core, or general SWE track |
| Online assessment | 2-3 hard problems, 90 minutes, HackerRank-style | Correctness and speed on graph, DP, string, and number-theory problems |
| Phone screen | 45-60 minutes, live coding in CoderPad | Compiling, bug-free code written quickly while explaining the approach |
| Onsite | ~5 one-on-one rounds with quants and developers | Competitive-style coding, systems design, C++ internals (Core) or probability (Algo), plus a short behavioral |
What the coding rounds actually reward
Speed is the thing candidates underrate. HRT’s whole business is being faster and more correct than the other side of the trade, and the interview mirrors that. Two people can both solve the problem; the one who finished in twelve minutes with clean, compiling code sends a stronger signal than the one who limped across at the buzzer. Practicing until your implementation is automatic matters more here than at almost any other firm.
The second thing is knowing what your code does underneath. Even in an algo round, reaching for a hash map when a sorted array would be faster, or not being able to say why your solution is cache-friendly, is the kind of detail that separates a yes from a maybe. Core Developer candidates get this asked directly; algo candidates get it through follow-ups that probe why your solution is fast, not merely whether it returns the right answer.
Compensation, in ranges
HRT pays at the top of the market, in the same tier as Jane Street and Citadel Securities. Public sources put new-grad total compensation somewhere around $400,000 to $550,000, with base salary roughly $175,000 to $250,000 and the rest in signing and performance bonus. Experienced software engineers show up on Levels.fyi across a wide band that runs from about $450,000 well past $700,000 all-in, and senior people go higher. These numbers move with the firm’s year and with your track, so treat them as ballpark and check Levels.fyi and Glassdoor for the current spread before you negotiate.
How to prepare without wasting weeks
The highest-return prep is timed competitive programming, not another pass through a standard interview list. Codeforces problems in the Div 2 C to E range train the exact muscle HRT tests: read a problem fast, pick the right structure, and code it correctly before the clock runs out. Practice writing full solutions that compile, in the language you’ll interview in, without an IDE holding your hand.
If you’re aiming at Core Developer, spend real time on C++ and systems: value and move semantics, what the standard containers cost, how memory and cache behavior shape a tight loop, and enough operating-systems knowledge to talk about processes, threads, and I/O without hand-waving. For algo roles, keep a probability and expected-value warmup in rotation so the quantitative questions don’t catch you cold.
The candidates who do well treat the loop as a speed exam with a systems component, not a knowledge quiz. Solve a hard Codeforces problem cleanly in fifteen minutes and explain why your code is fast, and you’re most of the way there. The rest is not freezing when a working trader is watching you type.
