How to Prepare for Your Software Engineer Interview at HRT

Written
Topic
Published

Sep 15, 2021

Intro

In this post, we’ll dive into the interview process for our software engineering roles for campus candidates. We hope to demystify what it is we’re looking for in candidates during the interview process.

In particular, this is what you should expect from our 2021-2022 full-time campus recruiting season. The information you’ll read here applies to our internship programs as well, just with a slightly abridged process.

We’re not promising your interview experience will look exactly like this, as we are constantly iterating on this process, but hopefully, this will give you a window into what it’s like to interview for a software engineering role at HRT.

The Roles

Software engineering at HRT spans multiple subteams and departments, as we’re all Coders at HRT <3. This post covers the interview process for two of our roles, “Software Engineering” and “Algo Engineering.” These engineers use a combination of C++ and Python to build and maintain our live trading infrastructure as well as our research and development environment.

Our Process

Each stage of the interview process will have a particular focus/scope and a standardized set of questions for the season. Our goal is to get a sense of how you think and what it would be like to collaborate with you. We expect strong candidates to be able to program, be effective communicators, and work through problems methodically. We also think it’s ok for candidates to need hints, guidance, and to make mistakes!

At a high level, you can expect a take-home test, roughly two phone interviews, and a full day of back-to-back “onsite” interviews (that can be conducted virtually or onsite).

Take-Home Tests:

  • These are usually timed and have a deadline.
  • Depending on the role you’re interviewing for, you may have restrictions on which languages you can choose.
  • These are typically conducted over Hackerrank or Codility.
  • Feel free to use resources that are available to you (books/internet) as a language reference while attempting the challenge.
  • Remember to test your code! The sample test cases provided aren’t comprehensive. Make sure to think of possible corner cases.
  • Coding style isn’t super important for this challenge – don’t worry about the maintainability of your code.
  • Working out a small example on paper before jumping into the code might be helpful.

Phone Interviews:

  • Technical Discussion: These rounds are usually a 45-minute discussion around one of the following topics: Knowledge of Systems / Data Structure / Problem Solving.
  • Programming: This tests your programming skills more specific to the team you’re interviewing for. For certain roles, you’ll be asked to program in either C++ or Python, while others will give you the choice to pick any language you’re comfortable with.

Onsite Interviews:

  • These can be conducted over Zoom or in-person (currently with limited availability). There are usually somewhere between 3-5 rounds, and can include topics like Low-level Systems Knowledge, Operating Systems, Computer Architecture, Programming Fundamentals, Systems Design, and even more programming!  

Evaluation:

First thing’s first – we’re looking at your programming skills:

  • Programming skills: Are you able to write idiomatic code that uses modern syntax, makes optimal use of resources, is well-encapsulated, easy to read, and well-commented?
  • Systems-level knowledge: Here we’re looking for candidates with fundamental systems knowledge (memory, I/O, process management). Can you understand what is happening under the hood?
  • Problem-solving skills: When presented with a problem that you don’t know how to solve, are you able to break it down and incrementally work towards an answer?

Technical skills aren’t the only thing we’re evaluating though – we want to see how you think, and how you approach problems. Can you think of a solution to the big picture and map out all of the steps? Are you keeping track of your progress? If you change your approach, are you communicating that to your interviewer? Here are some areas we are evaluating:

  • Collaboration: HRT is an extremely collaborative firm, so we’re also hoping to get a sense of how you like to work with others. Do you take hints well? Do you have an openness to a different approach?
  • Teachability: Did you apply ideas or approaches discussed earlier in the interview to subsequent questions or problems? This is a great way to show that you’ve learned something and that you’re receptive to feedback.
  • Communication: This is key to being successful in a collaborative environment. It’s important that you’re able to effectively communicate previous projects or work in an appropriate amount of detail. Many times your interviewer will not be an expert in the exact topics that you’re discussing, so we recommend you check in to see if they’re still following, and provide the context where it’s needed.

Top Tips

Interview Hacks:

  • Practice talking out loud when coding on your own.
  • Practice explaining technical topics to a non-technical audience.
  • Use a square camera angle.
  • Try to maintain eye contact – look at the camera, not the screen!
  • Use a professional virtual background, or blur your background.

When to over-communicate with your interviewer:

  • If you need 5 minutes of quiet time to think.
  • If you need to think out loud.
  • If you’re changing your approach.
  • If you realized you made a mistake and want to backtrack.
  • If you’ve heard the problem before. Honesty and integrity are important to us.
  • If your interviewer uses a term you’re unfamiliar with.
  • If you don’t know the answer, or if you’re not fully confident in your solution.
  • If you are stuck, unsure how to proceed, or need a hint.

As I mentioned early on, the info we provided in this post addresses two types of software engineering roles at HRT and their interview processes. We tailor this experience slightly to better fit each role and team. As you begin your interview journey with HRT, your recruiter will have the most relevant info for you. They’ll let you know what the focus and structure of each round will be beforehand, and what to expect, so you should use the information they provide as your primary source of truth even if it differs from what you’re reading in this post. You should consider your recruiter as your point of contact and your advocate in this process – ask them any questions you have!

For more info on all of our campus recruiting roles, click here.

We wish you the best of luck in all of your future interviewing endeavors!

About HRT

Hudson River Trading brings a scientific approach to trading financial products. We have built one of the world’s most sophisticated computing environments for research and development. Our researchers are at the forefront of innovation in the world of algorithmic trading.

Topics
Join Our Team

We’re always on the lookout for the best and brightest. Think you might be an awesome candidate?

Recent Articles

How We Verify Custom Hardware

Field-programmable gate arrays (FPGAs) are increasingly used in the areas of finance and trading. They allow the user to create custom hardware without many of the costs and delays associated with building custom chips.

Scaling Prometheus to Billions of Samples a Second

When scaling out infrastructure, it becomes increasingly important to have unified visibility into how the systems are operating. HRT is always working to expand the capabilities of our research.

Applying Artificial Intelligence to Trading

In the past few years it has been hard to escape the ubiquity of Artificial Intelligence. Although everything from your phone to your car or even your refrigerator might be endowed with AI, what is actually considered AI will vary widely from person to person.

Don't Miss a Beat

Follow us here for the latest in engineering, mathematics, and automation at HRT.

Loading...

Single Dealer Platform

 

HRT operates a single dealer platform that provides access to HRT’s unique principal liquidity in US equities and exchange traded funds. HRT SDP provides our clients customized liquidity that reduces market impact and lowers transaction fees.

 

• Hours of operation: 9:30AM-4:00PM ET

• HRT is the contra party to all trades with the client

• MPID: HRTX

• MIC: HRTF

• Clearing Number: 0369

• Trades are reported to the Nasdaq TRF

• Immediate or Cancel Orders (IOC) accepted

• HRT SDP is located in NY4

• HRT SDP supports Fix v. 4.2

• For more information please reach out to our team at liquidity@hudson-trading.com

You have Successfully Subscribed!

Systematic Internaliser

  

HRT operates two Systematic Internalisers in Europe that provide bespoke liquidity in over 1300 securities across all 15 major jurisdictions. Our unique platform allows for custom liquidity tailored to the needs of each of our clients.

 

• Hours of operation: 08.00-16.30 LDN

• HRT is the contra party to all trades with the client

• MIC: HRSI & HREU

• Fill Rate > 98%*

• IOC & FOK Orders accepted

• HRT SI is located in LD4

• HRT SI supports Fix v. 4.2

• Supported jurisdictions: Austria, Belgium, Denmark, Finland, France, Germany, Ireland, Italy, Netherlands, Norway, Portugal, Spain, Sweden, Switzerland, United Kingdom

• For more information please reach out to our team at liquidity@hudson-trading.com

 

* Fill Rate data as of July 2020

You have Successfully Subscribed!

US Treasuries

 

HRT provides disclosed liquidity streams to participants via interdealer platforms. HRT is a top-ranked liquidity provider in the US Treasury market with over 10 years of experience.

 

• Significant liquidity provider in on-the-run US Treasuries on multiple interdealer platforms such as Brokertec, Dealerweb, Fenics, MarketAxess Rates and Nasdaq Fixed Income

• Consistent liquidity in times of market volatility

• Provides unique liquidity sourced from strategies trading over a variety of time horizons

• US, London, and Asia trading hours

• For more information please reach out to our team at liquidity@hudson-trading.com

You have Successfully Subscribed!