← Back to Directory

Hudson River Trading interview notes, page 2 of 4

Mid-sized

Most of these Hudson River Trading write-ups come from Software Engineers (33), then Machine Learning Engineers (3) and Data Scientists (1). The most reported rounds are the technical phone screen (29), the system design round (4), the online assessment (3) and the hiring manager screen (1).

37 interview notes · updated Jul 2026

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
HRT quant researcher technical screen, basically one meaty C++ design problem that ate up the whole session. The question was more systems-flavored than I expected for a quant role, which threw me a bit.
  • Design and implement a C++ template class that wraps either std::map or std::unordered_map, with key and value types each independently parameterizable as int or string. The class should support insert/update, lookup, remove, size, and iteration, and handle the empty container case correctly. Be prepared to discuss template specialization strategies and how you keep behavior consistent across both underlying container types.

“I started with the template parameters and immediately second-guessed whether to use full specialization or just let the compiler handle it through partial specialization.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
Interviewed for a full-stack role at Hudson River Trading. One question but it had some real depth to it, more of a values-and-craft question than a pure technical one.
  • Why do you want to work across the full stack rather than specializing in just frontend or backend?

“I had an answer ready but it came out a bit rambly.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
Two-part coding interview for a Software Engineer role at Hudson. One simulation problem and one classic implementation task. Nothing too wild but the first problem has some tricky edge cases that can really trip you up if you're not careful about ordering.
  • There's a 1D track from position 0 to L with N players starting at various positions. A watcher stands at a fixed point and alternates looking left/right at given timestamps. Players being watched can't move. Given an end time T, how many players reach position L?
  • Implement integer-to-decimal-string conversion for a 32-bit signed integer without using any built-in conversion functions.

“This one looked manageable until I actually read the event ordering rules.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
Interviewed for a software engineer role at Hudson River Trading and got a string splitting problem that looked deceptively simple. The suffix dependency on total part count is what makes it actually interesting.
  • Given a message string and a character limit, split the message into ordered parts where each part ends with a suffix like '<X/Y>' (X = part number, Y = total parts), and every part including its suffix fits within the limit. Return an empty result if no valid split exists.

“The tricky part is that the suffix length depends on Y, which you don't know until you've decided how many parts to use.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
Systems-heavy technical phone screen for a software engineer role at Hudson River Trading. The whole thing was low-level C++ and OS internals, which I expected from HRT but still felt like drinking from a firehose. No fluff, no behavioral questions, just back-to-back concepts.
  • What does the inline keyword actually do in C++, and how do inline variables differ from inline functions?
  • Walk me through what causes a segmentation fault and what the OS is actually doing when one occurs.
  • Explain how the MMU translates a virtual address to a physical address.
  • What is the TLB and why does it exist? What happens on a TLB miss?
  • What is a page fault, and how does it differ from a trap? When does the OS get involved?
  • How does swapping work, and how is it different from demand paging?
  • How is std::string typically implemented, and what is the small-string optimization?
  • Why can marking a function inline actually increase binary size?

“I started with the compiler-hint angle and they pushed back immediately, asking me to distinguish language semantics from optimization behavior.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
HRT algo dev interview where the whole thing was a live coding exercise in an existing C++ trading system codebase. You're not writing from scratch, you're reading someone else's code and extending it. Felt more like a real work task than a typical interview problem.
  • You're given an existing C++ trading system with client/server architecture that already handles add and cancel order operations. Extend it to support a modify order operation, end-to-end, following the same patterns already in the codebase.

“The tricky part wasn't the implementation, it was spending enough time reading the existing code before touching anything.”

View Post

Hudson River Trading·Data Scientist·Technical Phone Screen

May 2026
Interviewed for a Data Scientist role at Hudson and got a classic algorithms problem. Nothing too wild, but it made me realize how rusty I was on sorting-based tricks.
  • Given an array of distinct integers, write a function that counts the number of inversions, where an inversion is any pair of indices where the earlier element is larger than the later one.

“I went straight for the O(n^2) brute force, two nested loops, check every pair.”

View Post

Hudson River Trading·Machine Learning Engineer·Technical Phone Screen

May 2026
Got a coding round for an ML Engineer role at Hudson that turned out to be way more simulation-heavy than I expected. The main problem was a geometry/logic puzzle dressed up as a movement problem, and then they hit you with a continuous-time follow-up that I was not ready for.
  • You have a 1D line segment with a right boundary at position L. N people start at given positions and all want to move right, one unit per time step, for T total steps. A stationary watcher at position W faces either left or right and reverses direction at specified times. Each step, any person strictly on the watcher's facing side cannot move. People at exactly W are unaffected. How many people reach position L after T steps?
  • Follow-up: how would you adapt the solution if movement is continuous rather than step-based, while the watcher still only changes direction at discrete switch times?

“My first instinct was to just simulate it step by step, which is probably the right call, but I spent too long second-guessing whether there was some closed-form trick.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

May 2026
Interviewed at Hudson River Trading for a software engineering role and ran into a stats/probability question disguised as a product design problem. The core of it was picking a metric for trading performance, which sounds easy until you actually have to defend your choice under pressure.
  • A trading firm tracks daily profit values across many days. Should they use mean or median as their primary performance metric, and why?
  • When would the median actually mislead you as a performance metric?
  • When does the mean become too unreliable to use as a metric?
  • If you weren't restricted to mean or median, what metric would you actually prefer for this problem?
  • Two trading strategies have the same mean return but different tail risk profiles. How do you compare them?

“I jumped straight to mean because expected value felt like the obvious answer for a trading context.”

View Post

Hudson River Trading·Software Engineer·Online Assessment (OA)

May 2026
HRT software engineer interview, looked like a coding assessment focused on array and string fundamentals. The edge case stuff was more systematic than I expected, less about solving the problem and more about whether you'd thought through the weird inputs before writing a single line.
  • For a typical easy-to-medium array or string problem, what edge cases would you test, and how do you quickly turn those into concrete test inputs and expected outputs during a timed assessment?

“This tripped me up more than it should have.”

View Post