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>
This commit is contained in:
2026-04-22 01:11:36 +08:00
parent ab80017903
commit dc6ab90c03
+145
View File
@@ -0,0 +1,145 @@
#+title: Interview Study Plan — Finance / HFT / Systems
#+date: 2026-04-22
* 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 |