dc6ab90c03
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>
4.3 KiB
4.3 KiB
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 1–3)
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 4–7)
Goal: Pattern recognition in LeetCode; go deeper on low-level topics.
- LeetCode: binary search, two pointers, sliding window, trees, DFS/BFS (easy–medium)
- 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 8–11)
Goal: Finance-specific systems knowledge; harder algorithm problems.
- LeetCode: heaps, graphs, DP, math/probability puzzles (medium–hard)
- 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 (1–2/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 (2–3 problems) |
| Tue | Low-level systems study |
| Wed | LeetCode (2–3 problems) |
| Thu | System design practice |
| Fri | C++ deep dive |
| Sat | Mock interview or review |
| Sun | Anki review + weekly reflection |