Skip to content
Work Practice Products Coding interviews Machine learning coding Quant developer HFT course Blog Method Why me About Enquire Book a call

Courses · Quant developer HFT

Quant developer HFT course

The round that follows the algorithms. An interviewer at a trading firm puts twenty lines of C++ on the screen and asks why it is slow, what happens when two threads touch it, and how you would know. This course teaches you to answer from the source code down to the cache line.

  • 10 modules
  • 65 lessons
  • 10 interview drills
  • 245 check questions
  • 253 model answers
Not started

Start the course

The questions in brief: low-latency C++ interview questions, and what a good answer sounds like.

Course outline

Every lesson and drill is open to read in full.

03

Choose the container, then control its memory

What each standard container does in memory, how vectors and hash maps grow, and the allocators, pools and small buffers that keep allocation off the hot path.

  1. Choosing a container by what it does in memory
  2. vector: size, capacity and growth
  3. Hash maps: buckets, load factor and rehashing
  4. map, list and deque: when nodes and blocks earn their place
  5. Allocators, pmr and object pools
  6. Small buffer optimisation
  7. Templates, CRTP and compile-time polymorphism
  8. Drill: containers and memoryDrill
04

Handle threads without fooling yourself

Data races, locks and their costs, the C++ memory model in the terms interviewers use, and the single-producer queue that sits between every pair of threads in a trading system.

  1. Threads, shared state and data races
  2. Mutexes, lock scope and contention
  3. Condition variables and producer–consumer queues
  4. Atomics and memory ordering
  5. The single-producer single-consumer ring buffer
  6. Lock-free queues, ABA and seqlocks
  7. Drill: concurrencyDrill
05

Understand the machine under the code

Caches and how cores keep them coherent, false sharing, the out-of-order pipeline and its predictors, prefetching, and SIMD, each tied to the code that triggers it.

  1. The cache hierarchy
  2. Cache coherency and MESI
  3. False sharing
  4. The pipeline, out-of-order execution and branch prediction
  5. Prefetching and streaming access
  6. SIMD and vectorisation
  7. Drill: the machineDrill
06

Keep the operating system out of the way

Virtual memory and the TLB, page faults, the scheduler, processes and shared memory, how malloc really works, and the isolation and scheduling settings trading systems run with.

  1. Virtual memory, pages and the TLB
  2. Page faults and how to avoid them
  3. Context switches and the scheduler
  4. Processes, threads and shared memory
  5. How malloc works, and why it matters on the hot path
  6. CPU isolation, real-time scheduling and kernel bypass
  7. Drill: the operating systemDrill
07

Understand the network between you and the exchange

Sockets, TCP and UDP for trading, the shape of a market-data feed handler, packet loss and backpressure, where the kernel's network stack spends its time, and the hardware that removes it.

  1. Socket programming for trading systems
  2. TCP versus UDP for trading
  3. The market-data feed handler
  4. Packet drops and backpressure
  5. Where the network stack spends its time
  6. Kernel bypass, RDMA and FPGAs
  7. Drill: the networkDrill
08

Measure latency honestly and find where it went

Percentiles and how latency is reported, profilers and what they miss, hardware counters, memory and lock bottlenecks, and how to tell the story of a performance investigation.

  1. Measuring latency: percentiles, tails and honest numbers
  2. Profiling the hot path
  3. Hardware performance counters
  4. Finding memory bottlenecks
  5. Debugging lock contention
  6. Telling a debugging story in an interview
  7. Drill: measuring and debuggingDrill
09

Speak the language of trading systems

The life of an order, the order book and how to build one, how exchanges match, the gateway and its risk checks, how market data reaches a strategy, and the C++ patterns that recur across all of them.

  1. The life of an order
  2. Designing an order book
  3. How a matching engine works
  4. The order gateway and pre-trade risk checks
  5. From market data to a trading decision
  6. The patterns, in one place
  7. Drill: trading systemsDrill
10

Get the numbers and the clocks right

How floating point behaves, why prices are integers, numerically stable statistics, and the clocks and timestamps every measurement and every regulator depends on.

  1. How floating point really behaves
  2. Prices as integer ticks
  3. Numerically stable calculations
  4. Time, timestamps and clocks
  5. Drill: numbers and timeDrill

What the systems round tests

Trading firms that hire software engineers for the trading path still ask algorithm questions, but the round that decides the offer is usually a different one. It is a conversation about a small piece of C++: a loop over market data, a queue between two threads, a class with a virtual function in it. The interviewer already knows the Big-O. They want to hear what one iteration costs on a real machine, and whether you can say it without guessing.

The questions are predictable once you have seen enough of them. Why is a vector faster than a list when both are O(n)? What does std::function allocate? What does memory_order_acquire actually promise? Why would you poll a network card instead of waiting for an interrupt? How do you report latency, and why is the average the wrong number? Each lesson takes one of these questions and builds the answer an experienced engineer would give.


How a lesson is built

The question

Each lesson opens on something an interviewer actually asks, word for word as you would hear it.

The mechanism

What the compiler, the CPU, the kernel or the network card does, with the C++ that triggers it and a diagram of the machine.

Check yourself

Short questions with the reasoning behind every option, so a wrong pick teaches as much as a right one.

In the interview

Model answers in the words you would use in the room: specific, measured, and without invented numbers.

Every module ends with a drill: four or five prompts in the order an interviewer would ask them, the answers that lose the point, and a strong answer to compare with your own.



Who it is for

Software engineers interviewing for developer roles at high-frequency trading firms, market makers and the engineering teams of hedge funds: titles such as software engineer, quant developer, low-latency developer or core developer. You should already be able to solve standard coding interview problems; if not, start with the coding interview course, which is part of the same subscription. You need to read C++, not to have written it for years. No finance background is assumed: the trading terms are introduced as they appear and gathered in Module 9.


Common questions

Which firms ask these questions?

Developer interviews at high-frequency trading firms and electronic market makers routinely include a systems round of this kind, and many hedge funds ask a version of it for engineers who work on execution. The format changes from firm to firm, from a whiteboard discussion to a take-home or a live debugging session, but the material is the same: C++ object lifetime, memory and caches, concurrency, the operating system, the network, and how latency is measured.

Do I need to know C++ well?

You need to be able to read it. The course explains every language feature it relies on, from RAII and move semantics to templates and type erasure, in the first three modules. Candidates who mostly write Java, Python or Rust use it to learn exactly the parts of C++ these interviews depend on.

Is this the same as the quant research interview?

No. Research and trading interviews test probability, statistics and market intuition; those are in the quant question banks. This course is for the engineering side.

Do I need an account?

No. Every lesson and drill is open in full, with its checks and model answers.

How long does the course take?

About 14 hours of reading, and longer if you work the checks and say the drill answers out loud, which is how it is meant to be used. Most candidates take two to four weeks alongside their algorithm practice.

Read the first lesson