← Back to Directory

Hudson River Trading interview notes, page 1 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

Apr 2026
HRT quant engineer interview, one question that spiraled into a pretty intense linear algebra rabbit hole. The follow-ups were where things got interesting.
  • Given an m by n matrix where every row sums to 1 and every column sums to 1, does the matrix have to be square? And if so, is it invertible? What if the matrix raised to the 7th power equals zero?

“The square part clicked fast.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Apr 2026
Got a simulation-style coding problem from HRT that looks deceptively clean on the surface but has a lot of moving parts to track simultaneously. Not sure how I did.
  • You have a 1D array of length L. Watchers and players both move at speed 1 per unit time. Watchers start facing left and reverse direction at given timestamps (unsorted). A player is frozen whenever a watcher shares their position. A player wins if they reach position L by time T. Given initial positions of all watchers and players, plus the reversal timestamps and end time, return the count of players who successfully reach the end.

“The reversal timestamps being unsorted was the first thing that tripped me up.”

View Post

Hudson River Trading·Machine Learning Engineer·Technical Phone Screen

Apr 2026
HRT ML Engineer interview with a pretty gnarly continuous-time simulation problem. The math was doable but the edge cases kept piling up in ways I didn't fully anticipate going in.
  • A watcher and N people all move along a line at unit speed. The watcher changes direction at known timestamps. Whenever someone falls in the watcher's line of sight, their position is frozen; otherwise they advance normally. Compute each person's final position at time T.

“The core idea clicked pretty fast: partition the timeline at each direction-change timestamp so you get segments where the watcher's direction is constant, then solve each segment analytically.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Apr 2026
Technical screen for a quant researcher role at HRT. The coding problem was lower-level than I expected, more systems-y than pure math or stats, which threw me off a bit.
  • Given a byte buffer holding a sequence of mixed-type values (characters, integers, and strings) packed back-to-back, implement three reader functions, one per type, each taking the buffer and a current pointer position and returning the parsed value plus the updated pointer. The implementation should handle fixed-width types, length-prefixed strings, avoid unnecessary copies, and signal cleanly when the buffer is exhausted. Also write tests covering reads in arbitrary order.

“Not what I was bracing for in a quant interview.”

View Post

Hudson River Trading·Machine Learning Engineer·Technical Phone Screen

Apr 2026
HRT ML Engineer interview with a simulation-style coding problem described verbally, no screen share or written prompt. You have to take good notes because they just talk at you and expect you to reconstruct the problem yourself.
  • N people start at positions on a number line and all move right each time step. A watcher starts at some position and can face left or right, reversing direction at given times. Any person strictly on the side the watcher is facing cannot move that step. After T steps, how many people have reached or passed a target position L? Implement a solution.

“The problem was entirely verbal, no written spec, so the first few minutes were just me scribbling and asking clarifying questions to make sure I understood the blocking mechanic.”

View Post

Hudson River Trading·Software Engineer·Onsite - System Design / Architecture

Apr 2026
Did a system design round at Hudson River Trading for a software engineering role. The problem was deceptively low-level: wrap a fixed-chunk stream API so callers can request arbitrary byte counts. Felt like a good signal into how they think about infrastructure-level code.
  • You have a low-level stream API that reads exactly 4096 bytes at a time. Design a wrapper `read(n)` that returns any number of bytes the caller requests, buffering leftover bytes between calls.

“This is the kind of question where the core idea clicks fast but the edge cases eat you alive.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Apr 2026
Low-level C++ technical screen at Hudson River Trading. Two meaty questions, both with a lot of depth expected underneath them. The kind of interview where you realize halfway through that you only half-know something you thought you fully knew.
  • What actually happens when a program requests 8 GB of memory on a machine that only has 4 GB of RAM?
  • What is the purpose of the inline keyword in C++, and what are the downsides of using it?

“I started talking about the allocation failing and they just waited.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Apr 2026
Did a technical round for a full-stack role at Hudson River Trading. One big open-ended on-call scenario that basically turned into a 40-minute conversation about how I think through production incidents. Not what I expected but kind of interesting once I got into it.
  • You're on-call and a colleague tells you the app is rendering slowly. Walk through how you'd investigate and fix it from start to finish.

“This question is deceptively wide.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Apr 2026
HRT coding screen, one problem the whole time. The question looked deceptively simple at first glance but the follow-ups made it clear they wanted something more clever than brute force nested loops.
  • Given two arrays of positive integers, convert each to its decimal string form and find the maximum length of a common prefix shared between any element from the first array and any element from the second array.

“I started with the naive all-pairs approach and they immediately asked about input size, which was their way of telling me to think harder.”

View Post

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

May 2026
Got an OA from Hudson River Trading for a software engineer role. Pretty straightforward string manipulation problem, nothing that'll keep you up at night, but the linear-time hint in the constraints was a nice nudge toward thinking about efficiency.
  • Given a string, count how many substrings of exactly length 3 contain at least one vowel (both lowercase and uppercase vowels count).

“My first instinct was to just check each length-3 window and see if any character is a vowel.”

View Post