← Back to Directory

Hudson River Trading

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

Jul 2026
Got a simulation-style coding problem for a Hudson River Trading software engineer round. The problem looked like a queue/scheduling thing on the surface but had enough edge cases to trip you up if you weren't careful.
  • A lab has a single molecular reactor that processes one sample at a time, taking exactly 5 minutes (300 seconds) each. Samples arrive at integer timestamps. A cooling chamber holds at most 10 waiting samples. If a sample arrives when the chamber is full, it gets rejected. If a sample arrives exactly when another finishes processing, the chamber sample goes next and the new arrival waits. Given a sorted list of arrival times, return the time when all accepted samples finish processing.

“The queue simulation part was fine but I kept second-guessing the tie-breaking rule.”

View Post

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

Jul 2026
HRT system design round focused on a deque-backed data structure with stable logical indexing. Pretty niche problem, more CS fundamentals than typical system design fare.
  • Design a data structure backed by a deque that supports push/pop from both ends and O(1) access by logical index. How do you use an offset to maintain stable logical indexing as elements are removed from the front?
  • How would you implement this without stable iterators?
  • How would you handle memory reclamation as elements are popped?
  • How would concurrency affect the offset map and the deque together?
  • How would you support random deletion by logical index?

“The offset trick clicked for me partway through but I fumbled explaining it cleanly.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Jul 2026
Interviewed for a software engineering role at Hudson River Trading and got hit with a matrix problem that sounds deceptively simple until you actually sit down and think through all the edge cases. The follow-up questions pushed into complexity and update handling territory which I wasn't fully prepared for.
  • Given a matrix, count how many cells have the property that all other values in the same row and all other values in the same column are equal to each other (excluding the cell itself).
  • How would you handle updates to the matrix efficiently after the initial count is computed?
  • How does your solution change if the candidate cell's value must also match the other values in its row and column?
  • Can the problem be solved in O(mn) time?

“I spent way too long on the naive approach before realizing there's probably a smarter way to precompute row and column info.”

View Post

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

Jul 2026
HRT system design round, focused on a data structure problem that started simple and kept getting harder. The weighted extension was where things got interesting.
  • Design a data structure that supports insert, delete, and getRandom in O(1) average time.
  • Extend the data structure so each value has a weight, and getRandom returns values with probability proportional to their weight.
  • How would you support duplicate values being inserted?
  • How would you handle updating a weight after insertion?
  • How would you test that your getRandom implementation actually matches the expected probability distribution?

“Classic problem but I fumbled the delete for a second.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Jul 2026
HRT full-stack interview that went deep on React internals, specifically performance and memoization. More conceptual than I expected for a trading firm, but they clearly care about frontend quality.
  • Walk me through when React decides to re-render a component. What specifically triggers it?
  • What's the difference between React.memo, useMemo, and useCallback? When would you actually reach for each one?
  • What are the common pitfalls with memoization in React? When does it make things worse instead of better?
  • How do you diagnose unnecessary re-renders in a React app? What tools and signals do you look for?
  • A parent component re-renders on every keystroke. How do you prevent expensive child components from re-rendering along with it?

“I started with state changes and props, which is fine, but fumbled a bit on context.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Jun 2026
Technical phone screen for a full-stack role at HRT, basically one long deep-dive into Python context managers. They went way further than I expected, from the basics of the protocol all the way to ExitStack and re-entrant contexts.
  • Walk me through how the context manager protocol works in Python, including what __enter__ and __exit__ do, how the `with` statement fits in, and what it means for __exit__ to return True.
  • Implement a context manager as a class using __enter__ and __exit__, then implement the same thing using contextlib.contextmanager with a generator.
  • Write a timing context manager that measures and prints elapsed time when the block exits.
  • Implement a context manager that manages a resource like a file handle, database connection, or lock, and guarantees cleanup even if an exception is raised inside the block.
  • How would you handle nested or re-entrant context managers? What is contextlib.ExitStack and when would you use it?
  • What are the common pitfalls with context managers, particularly around exception suppression, re-raising, and making cleanup logic safe to call more than once?

“I covered the basics fine but fumbled the return value part.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Jun 2026
Rapid-fire C++ fundamentals screen for a software engineering role at Hudson, clearly aimed at low-latency / HFT-style work. Five topic areas back to back, all pushing on mechanism and cost rather than definitions. Felt more like a debugging session than a typical interview.
  • What does the inline keyword actually mean in C++, and what does it guarantee versus what it only hints at?
  • Walk through exactly why inlining a function can increase binary size, and describe a scenario where a non-inlined call gives better latency than an inlined one.
  • What does the new keyword do under the hood, and can you describe what malloc is actually doing at the implementation level?
  • Does the OS get involved every time you call new or malloc? How would you avoid touching the OS on a latency-sensitive hot path?
  • Roughly how much slower is heap allocation compared to stack allocation, and why?
  • Compare templates and inheritance as tools for polymorphism. When would you choose one over the other?
  • What are the differences between std::map and std::unordered_map, including worst-case complexity for each?
  • How does an unordered_map actually locate the right bucket for a given key?
  • What is a segmentation fault and what is actually happening at the hardware and OS level when one occurs?
  • If you bind a reference to a dereferenced null pointer, when exactly does the crash happen and why?

“I started talking about inlining as a performance hint and the interviewer immediately pushed back asking what it actually guarantees at the language level.”

View Post

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

Jun 2026
HRT system design round for a software engineer role. The focus was entirely on a data structure design problem that looked straightforward on the surface but had a lot of moving parts once you got into the implementation.
  • Given a data structure with easy-to-understand behavior but a lengthy implementation, walk through your full design process: clarifying the required operations and constraints, sketching out states and transitions, picking your core data structures, analyzing time and space complexity per operation, handling edge cases, and organizing your code and tests to reduce bugs.

“This was the whole interview basically.”

View Post

Hudson River Trading·Software Engineer·Technical Phone Screen

Jun 2026
Hudson SWE interview with a C++ systems coding question, pretty focused on low-level design and understanding an existing codebase before touching anything. Not a whiteboard-from-scratch situation, more like 'here's a real system, extend it properly.'
  • You're given a C++ trading system with client/server architecture that already handles AddOrder and CancelOrder. Add a ModifyOrder request that updates price and quantity, with proper validation and rejection logic, and explain how you'd navigate the existing codebase before writing any new code.

“The implementation part was manageable but the 'what would you inspect before making changes' angle tripped me up a bit.”

View Post

Hudson River Trading·Software Engineer·Hiring Manager Screen

Jun 2026
Interviewed for a software engineer role at Hudson, and the main thing they wanted to dig into was my motivation for full-stack work specifically. Not a super long process from what I could tell, more of a screening conversation to see if I actually meant it or was just calling myself full-stack because it looks good on a resume.
  • Why do you want to work full-stack rather than specializing in just frontend or backend?

“I fumbled the opener a bit.”

View Post

Hudson River Trading interview FAQ

What rounds are in the Hudson River Trading interview?

Candidates most often report a technical phone screen (29 write-ups), a system design round (4), an online assessment (3) and a hiring manager screen (1).

What does the Hudson River Trading technical phone screen cover?

Across 29 technical phone screen write-ups, the most tagged question topics are Technical Trade-offs (52 questions), Algorithms & Data Structures (38) and System Design (30).