Files
tomatocream dc6ab90c03 docs: add interview study plan for finance/HFT roles
Covers target firms, three study tracks (LeetCode, low-level systems,
system design), a 4-phase 12-week timeline, weekly rhythm, and resources.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 01:11:36 +08:00

4.3 KiB
Raw Permalink Blame History

Interview Study Plan — Finance / HFT / Systems

Target Firms

HFT / Prop Trading

  • Jane Street
  • Citadel Securities
  • Virtu Financial
  • Jump Trading
  • Optiver
  • IMC
  • Susquehanna (SIG)
  • DRW
  • Flow Traders
  • Hudson River Trading

Quant Hedge Funds

  • Two Sigma
  • DE Shaw
  • Renaissance Technologies
  • AQR
  • Millennium Management

Crypto Exchanges

  • Coinbase
  • Binance
  • Kraken
  • OKX

Banks (Trading Desks / Strats)

  • Goldman Sachs
  • Morgan Stanley
  • JP Morgan

Fintech Infrastructure

  • Broadridge
  • ION Group
  • Refinitiv / LSEG

Study Tracks

Track 1: LeetCode / Algorithms

  • Arrays, hash maps, linked lists, stacks, queues
  • Binary search, two pointers, sliding window
  • Trees, graphs, DFS/BFS
  • Sorting, heaps
  • Dynamic programming (easy → medium)
  • Math and probability puzzles (especially for Jane Street, Optiver)

Track 2: Low-Level Systems

OS & Kernel

  • Process vs thread, scheduling, context switching
  • Memory management: virtual memory, paging, TLB
  • System calls, interrupts
  • CPU caching: L1/L2/L3, cache lines, false sharing
  • NUMA architecture
  • CPU pinning / thread affinity

Networking

  • TCP vs UDP — congestion control, reliability, ordering
  • KCP — low-latency UDP protocol
  • Kernel bypass: DPDK, RDMA
  • UDP multicast (common in market data feeds)
  • FIX protocol basics

C++ Internals

  • Memory model: stack vs heap, RAII
  • Move semantics, copy elision, RVO
  • Templates and template metaprogramming
  • Undefined behavior and compiler optimizations
  • SIMD intrinsics (basics)
  • Custom memory allocators
  • Lock-free data structures: CAS, atomics, memory ordering
  • Ring buffers, lock-free queues

Track 3: System Design

  • General: scalability, load balancing, databases, caching
  • Low-latency architecture patterns
  • Co-location and proximity hosting
  • Order book design and matching engine
  • Market data feed architecture
  • Tick-to-trade pipeline design

Phased Timeline

Phase 1 — Foundations (Weeks 13)

Goal: Build base knowledge across all three tracks simultaneously.

  • LeetCode: arrays, hash maps, linked lists, stacks, queues (easy problems)
  • Systems: OS fundamentals — processes, threads, memory management
  • C++: review move semantics, RAII, memory model
  • System design: read about scalability basics

Phase 2 — Core Patterns (Weeks 47)

Goal: Pattern recognition in LeetCode; go deeper on low-level topics.

  • LeetCode: binary search, two pointers, sliding window, trees, DFS/BFS (easymedium)
  • Systems: CPU caching, cache lines, false sharing, NUMA
  • Networking: TCP/UDP deep dive, KCP
  • C++: atomics, memory ordering, lock-free basics
  • System design: practice 1 question/week (general scalability)

Phase 3 — Advanced (Weeks 811)

Goal: Finance-specific systems knowledge; harder algorithm problems.

  • LeetCode: heaps, graphs, DP, math/probability puzzles (mediumhard)
  • Systems: kernel bypass (DPDK, RDMA), UDP multicast, CPU pinning
  • C++: lock-free queues, ring buffers, custom allocators, SIMD
  • System design: order book design, matching engine, market data feed
  • Read about FIX protocol and tick-to-trade pipeline

Phase 4 — Mock & Polish (Weeks 12+)

Goal: Interview simulation; fill gaps; stay sharp.

  • Timed LeetCode sessions (medium difficulty, 45 min each)
  • Mock system design interviews (12/week)
  • Review flashcards daily (Anki)
  • Company-specific prep: research each target firm's tech stack
  • Behavioral stories in STAR format

Resources

LeetCode Lists

  • Blind 75
  • NeetCode 150
  • Optiver / Jane Street past problem types (probability, brainteasers)

Books

  • "Computer Systems: A Programmer's Perspective" (CS:APP) — OS/memory
  • "C++ Concurrency in Action" — lock-free, atomics
  • "Designing Data-Intensive Applications" — system design
  • "Trading and Exchanges" — market microstructure

Online

  • NeetCode.io — structured LeetCode patterns
  • Martin Kleppmann's DDIA
  • "What Every Programmer Should Know About Memory" (Ulrich Drepper)

Weekly Rhythm

Day Focus
Mon LeetCode (23 problems)
Tue Low-level systems study
Wed LeetCode (23 problems)
Thu System design practice
Fri C++ deep dive
Sat Mock interview or review
Sun Anki review + weekly reflection