2021–2026 HRT Software Engineer (Python Track + Onsite) OA / Interviews: 35 Experiences (Part 2 :)
- Company
- Hudson River Trading
- Reports
- 16 interview reports
- Level
- Unknown
- Stages
- OA → Phone screen → Onsite
In this series
- Part 1: the 19 Python-track reports (Python-knowledge rounds, debugging over SSH, the full London Python loop) plus the question tables for the whole series.
- Part 2 (current): 3 Python intern reports and 13 onsite or final-round reports from C++ or unstated-language candidates, plus patterns across all 35.
Part 2 picks up the timelines at entry 20: the Python intern reports first, then the onsite and final-round loops that show what HRT's on-site day looks like.
Coverage: Hudson River Trading · 3 Python intern reports (2023–2026) · 13 onsite or final-round reports from software engineer candidates whose language was C++ or not stated, including one new grad (2022–2026) · US, UK and Singapore
The topic and question tables for all 35 reports are in Part 1. The 2026 Python-track new grad has their own post.
Detailed candidate timelines, continued (20–35)
Python intern reports
20: C++ title, Python interview
Report date: 2026-08-06 · Role: C++ Software Engineer Intern (Early Access program) · Result: No offer
Technical round
- The process was described as a 30-minute virtual technical round, a 60-minute technical round and then an onsite.
- Both the job title and the recruiter's email said C++, but the interview was in Python.
- The task: given a small existing codebase, extend one of its APIs. The candidate found it easy but said the interviewer barely engaged.
21: asyncio-style framework and contact tracing on the phone
Report date: 2024-11-29 · Role: Software Engineer (Internship) · Location: Singapore · Result: No offer
OA
- A 3-hour CodeSignal test.
Phone screen (1 hour)
- Long problem statements, less LeetCode and more talking through the design and algorithm.
- Design a concurrent framework, along the lines of Python's
asyncio. - A contact-tracing graph problem.
22: a final round that went well, then a rejection
Report date: January 2023 (post date) · Role: Software Engineering Intern (Python postings) · Location: Singapore · Result: Rejected
- OA, then a phone screen on data structures and operating systems.
- A final-round CoderPad interview with a senior developer, which the candidate felt went well.
- HR then cancelled the follow-up chat with the team lead and rejected them. The candidate thought it was because they had applied to other HRT openings at the same time.
Onsite and final-round reports from other SWE candidates (C++ or language not stated)
23: five interviews, offer declined
Report date: 2026-09-29 · Role: Software Engineer · Location: London · Result: Offer, declined
- A recruiter reached out, then five online interviews in total. The candidate called it a classic software engineer loop, harder than at other companies.
24: phone screens, then an onsite, offer accepted
Report date: 2026-09-27 · Role: Software Engineer · Result: Offer, accepted
- One or two phone screens, then an onsite. Every step focused on technical problem solving and communication.
25: new grad, asked to know things "down to the memory level"
Report date: 2026-07-02 · Role: SWE New Grad · Result: No offer
- A Codility OA, then live interview rounds the candidate called pretty difficult.
- The candidate's takeaway: HRT wants people who understand things deeply and at a low level, down to memory and how kernels work. The language wasn't stated.
26: a full onsite day with a garbage-collector question
Report date: November 2025 (post date) · Role: Not stated · Experience: previously at a large hardware company · Result: The candidate believes they failed
Onsite (full day)
- One interviewer insisted
std::vector::push_backis O(1). The candidate argued that the occasional full reallocation is O(N) and matters for real-time code. - Two interviewers asked how to implement a garbage collector. They pushed back on the candidate's answer, which drew on a reference-counting collector they had worked on, and seemed to want a different design.
27: binary search medium and system design at the onsite
Report date: 2025-11-07 · Role: Software Engineer · Location: New York · Result: Offer, declined
- A phone screen, then a LeetCode-medium round.
- An onsite with another LeetCode medium (a binary-search problem) and some system design questions. The candidate called it not too hard if you'd practiced.
28: floating point, bits and Union-Find, offer accepted
Report date: 2025-07-01 · Role: Software Engineer · Location: New York · Result: Offer, accepted
- OA, a 1-hour technical phone screen, then an onsite.
- The problems weren't the hardest, but the range of topics was wide: floating point, bit manipulation, data structures and algorithms, and basic OS concepts. One question was a basic application of Union-Find.
29: final round with a packet-routing design
Report date: 2025-04-01 · Role: Software Engineer · Location: US · Level: Junior · Result: No offer
- Reached the final interview round, in C++.
- Design question: how would you design a system that routes network packets between one hub and several node servers?
- The candidate was unhappy with the rounds. Answers using C++20 features confused the interviewers, and they kept nudging until the candidate matched the answer they expected.
30: hard DP and an offer
Report date: 2024-07-19 · Role: Software Engineer · Location: US · Result: Offer, declined
- OA, phone screen, then interviews with engineers.
- The OA was the hardest part. The phone screen focused on thought process more than difficulty.
- Questions were LeetCode-hard dynamic programming.
31: a hit counter whose payloads don't fit in memory
Report date: 2023-07-03 (post date) · Role: Not stated · Result: The candidate felt the round went badly
Onsite round
- Start from the classic hit counter:
hit(timestamp)records a hit, andgetHits(timestamp)returns the hits in the last 5 minutes. - Add
get_messages(timestamp), which returns the payload messages for a timestamp. There can be several per timestamp. - The twist: each payload can be a couple of KB, too many to keep in memory, though the timestamps themselves fit.
- The candidate kept timestamps in memory and wrote messages to a single append-only file, in a simple SSTable style. They planned a background thread for disk writes and for dropping old messages.
- The interviewer hinted at two follow-ups the candidate didn't explore. First, when should a message go straight to disk, and when should it sit in an in-memory cache? How would you decide from the load, and estimate that load with rough numbers? Second, are there better options than an SSTable for the disk side?
- Looking back, the candidate felt they jumped into coding before asking enough questions.
32: topic list in advance, full-day onsite
Report date: 2023-05-14 · Role: Software Engineer · Location: London · Result: No offer
- Two phone interviews, then a full-day onsite.
- HRT sent a list of topics to prepare before the onsite. One question shared: why do you want to work here?
33: LeetCode hard in every interview
Report date: 2023-03-10 · Role: Software Engineer · Location: Singapore · Result: No offer
- An online test with mostly LeetCode-medium questions.
- Several interviews after that, all at LeetCode-hard level.
34: two 3-hour final days
Report date: 2022-10-01 · Role: Software Engineer · Location: US · Result: No offer
- OA, then a non-coding technical screen, then a technical interview.
- Two final interview days of 3 hours each.
- One question shared: how can you run multiple processes on one computer?
- More than three weeks passed between the OA and the first interview.
35: a 2-hour coding block, then talking it through
Report date: About 2022 (comment posted 2023-05-04) · Role: Not stated · Experience: Experienced · Result: Offer, declined
First onsite session (about 2 hours at a computer)
- Four questions: a parsing warm-up with edge cases; a data structure to implement, judged on how efficient it would be in practice; and two algorithm problems, the last framed as a bonus. The candidate finished in about an hour.
Other onsite interviews
- Less coding, more discussing approaches: optimizing a backtracking problem, a math question, and memory management.
- On one, the candidate took an unexpected route, got it wrong, took a hint and then solved it.
Patterns across the reports
-
Python questions go under the hood. Twelve of the 19 Python-track reports had questions about Python itself (02, 03, 04, 05, 06, 07, 08, 09, 11, 14, 18 and 19). The dict was the repeat: 04, 09 and 19 were each asked how a dict works or handles collisions, from 2021 to 2025. Others got
with(06), the interpreter and compilation (07), andyieldand the GIL (18). Report 04 met this in a final round. The rest met it in phone screens or first rounds. -
Debugging in a real terminal. Entries 12 and 16 both describe SSHing into a prepared machine and working on Python there. In 12 it was reading snippets and finding bugs. In 16 it was five scripts with CSV inputs. Entries 05 and 08 also describe live debugging or "what does this code do" questions.
-
The onsite day opens with a long coding block in some loops. Entry 35 had about two hours at a computer on four problems before discussion rounds. Entry 34 had two 3-hour final days. Entries 10 and 32 describe a full day. Where candidates counted rounds, they reported four (16) or five (09, 23).
-
Low-level systems questions show up for C++ and Python candidates alike. Memory and OS questions appear in Python reports 04, 09 and 18. They also appear in C++ or unstated-language reports 25, 26, 28, 34 and 35.
-
The language on the title isn't always the language in the room. Entry 20 applied for a C++ internship and interviewed in Python. On the other side, the 2026 Python-track new grad in the companion post was told Python candidates get questions in C.
In this series: Part 1 · Part 2 (current)
Sources: Anywhere useful interview info can be found.
Comments
0No comments yet — be the first to share what you know.