Referring to the "technical post ceiling" in hedge funds.Hudson River Trading(HRT) must be on the list! Their OA has always been known for its high difficulty, tight timeframe, and extremely high math requirements, and many LeetCode bigwigs have flopped at this level. In this post, we'll break down the HRT OA process, question types, common pitfalls, and the real-life experiences of our students, in the hope of giving you a little confidence in preparing for HRT!

HRT OA Process Overview (SWE Position)
HRT's OA is usually divided into two main parts and lasts 90 minutes:
Coding
This part will usually have two main programming questions, the overall difficulty of LeetCode hard, the investigation of knowledge is very typical, such as graph theory, and check set, dynamic programming, greedy strategy, heap optimization, and even discrete processing. The topic itself is usually related to the real trading system scenario, so not only do you have to write the right code, but you also have to have clear logic and complete thoughts, and it is best if you can also talk about time complexity optimization. The interviewer will pay special attention to whether you have thought out the corner case clearly, whether the variable naming is standardized, and whether the overall code structure is "on-line".
Math Reasoning + Quick Thinking Questions
This section is more like an IQ test or a mathematical modeling competition. It usually consists of 10 to 20 questions covering probability, permutations and combinations, linear algebra, geometric calculations, and even some mental math skills. The difficulty is not necessarily particularly high, but it is very concerned about the sense of rhythm and stress resistance, because of the large number of questions, time is tight, basically requires you to quickly modeling, reasoning, calculating the results in a short period of time and move on. it is recommended that you practice in advance, to establish a sense of the problem, and learn to judge which questions are worth spending more time, and which ones should be given up decisively.
Many students see this set of combinations on the second goat, in the final analysis, this kind of topic is not a moment of lucidity, but usually there is no high-quality practice, there is no simulation done in a limited environment. Exam tempo control, trade-off judgment, and familiarity with high-frequency test points is what really opens the gap.
Recollections of real questions (organized in 2025)
1. Code Cleaning
Which of the following is a valid way to clean up the code below?
const strA = "test";
const strB = "demo";
let hashA = 0;
for (let i = strA.length; i >= 0; i--) {
const code = strA.charCodeAt(i);
hashA *= 37;
hashA += code;
}
let hashB = 0;
for (let i = strB.length; i >= 0; i--) {
const code = strB.charCodeAt(i);
hashB *= 37;
hashB += code;
}
2. Class Refactoring
The Chef
and Waiter
classes both have a similar printDetails
How can you refactor the code to reduce duplication?
class Chef {
printDetails() {
console.log("Staff ID: " + this.id);
}
}
class Waiter {
printDetails() {
console.log("Staff ID: " + this.id);
}
}
Options
- Replace
this.id
with a getter method to encapsulate the member variable. - Change the
printDetails
method totoString
and use it for console output. - Move the
printDetails
method to a superclass. - Create a standalone
printDetails
function and call it from both classes.
3. Heap Sort Characteristics
Which statement about heap data structures and their use in sorting is correct?
Options
- Heap sort has a time complexity of O(n log n), and building a heap of n elements takes O(n) time.
- Heap sort has a time complexity of O(n log n), and building a heap takes at least O(n log n) time.
- Heap sort has a time complexity of O(n²), and building a heap takes at least O(n log n) time.
- None of the above.
4. Card Game Winner
Alice and Bob each have a deck of numbered cards. They take turns discarding or flipping cards from the top. The game starts with a random call of "Even" or "Odd".
If "Even" is called, both flip their top cards and compute scores (their card value minus the opponent's).
If "Odd" is called, both discard their top cards first, then flip the next card and compute scores.
Subsequently, they alternate discarding one card and flipping the next until all cards are used. The player with the higher score wins; if scores are equal The player with the higher score wins; if scores are equal , it's a tie.
Example
Alice's cards: [6, 8, 10]
Bob's cards: [5, 7, 9]
Starting with "Odd".
Alice's Card | Bob's Card | Alice's Score | Bob's Score |
---|---|---|---|
8 (discard 6) | 7 (discard 5) | 8 - 7 = 1 | 7 - 8 = -1 |
10 (discard 8) | 9 (discard 7) | 10 - 9 = 1 | 9 - 10 = -1 |
Total | 2 | -2 | |
Result: Alice wins |
Function Requirement
Complete the determineWinner
function with parameters.
aliceCards
: Array of Alice's card values.
bobCards
: Array of Bob's card values.
startType
: Starting call ("Even" or "Odd").
Return: "Alice", "Bob", or "Tie".
5. Optimal Binary String
Definitions.
A binary string consists of 0s and 1s.
A prefix of a string is any substring starting from the first character.
A non-empty binary string is "optimal" if.
- The number of 0s equals the number of 1s.
- Every prefix has at least as many 1s as 0s.
Example. 110010
is optimal, while 110101
is not.
Given an optimal binary string, you can swap adjacent optimal substrings to form the largest possible numerical value.
Example
Input. binStr = 101100111000
Swap the optimal substrings 10
and 1100111000
to get. 110011100010
.
Function Requirement
Complete the maximizeOptimalString
function with parameter.
binStr
: An optimal binary string.
Return: The largest possible string after swapping adjacent optimal substrings.
6. Binary Tree Node Type Query
Binary tree information is stored in the TREE
table. Write an SQL query to identify each node's type ( ROOT
, INNER
, or LEAF
) and output results sorted by node ID in ascending order.
Table Structure
Column | Type | Description |
---|---|---|
ID | Integer | Node ID (1~1000) |
P_ID | Integer | Parent node ID (1~1000) |
Output FormatTREE.ID TYPE
Sample Input
TREE | |
---|---|
ID | P_ID |
3 | 5 |
6 | 5 |
8 | 10 |
12 | 10 |
5 | 9 |
10 | 9 |
9 | NULL |
Sample Output
3 LEAF
5 INNER
6 LEAF
8 LEAF
9 ROOT
10 INNER
12 LEAF
Programhelp Real cases of assistance from students|Remote without traces, perfect completion of HRT OA
Situation of trainees
We have previously assisted a Chinese student from UT Austin who was actually under a lot of pressure while preparing for the HRT OA. He said that he was most worried about a few points, firstly, the time for programming questions was too tight, and he was afraid that he would not have time to consider all kinds of boundary situations; secondly, the math and logic questions were too novel, and completely different from the ones he had brushed up before; thirdly, it was too hard to understand the English questions, and he was prone to lose points if he didn't read the questions clearly; and lastly, it was not easy to control the whole rhythm of the exam, and he was afraid that the order would be messed up and the rhythm would collapse if he panicked.
Programhelp Team's "Remote No Trace" Strategy
Our Programhelp team helped him customize a set of "Remote No Trace" strategies to ensure that the whole process is stable, secure and efficient. First of all, in terms of equipment preparation, we built an exclusive voice channel for him in advance, using a hidden headset + encrypted voice transmission, during the examination process, we transmitted real-time analysis of the questions and tips for solving the questions, especially when encountering tongue-twisters or traps type of questions, which could help him quickly clarify his thoughts.
To make sure he gets into the mood, we intensively brushed more than 30 HRT high-frequency questions, including programming and logic questions, one week before the exam, and summarized a set of "question templates", so that he really knows where to start when he sees a question. At the same time, we will remind him softly by voice during the test, such as "this question can be skipped first", "there are still 5 minutes, start checking the boundary situation", to help him keep the rhythm steady and not get stuck by the difficult questions. Programming part of us also synchronized prejudge the logic, like when he was writing code, we background real-time deduce the logic of the question, timely remind him "Have you considered the empty input?" "Pay attention to the handling of repeated numbers", these edge cases are easy to lose points once they are missed, and we helped him to cover them in advance.
No trace of operation guarantee + field control rhythm strategy, successfully won the VO invitations
The most important thing is that the whole process is executed without any trace. We did voice testing, network isolation, and equipment debugging in advance, and the whole exam was conducted without leaving any abnormal records or suspicious operations to ensure soundness and safety. In the end, he successfully completed all the programming questions and most of the math questions, and the overall pace was so well controlled that he soon received a follow-up VO invitation from HRT.
If you also want to have a solid career in OA/VO of HRT, Jane Street, Two Sigma, which are super high-quantitative posts, but are worried about the pace / type of questions / pressure handling, welcome to write to us at any time to learn about remote no trace of the assistance program, Programhelp professional team is on standby around the clock, to escort you!