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:
@@ -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 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 |
|
||||
Reference in New Issue
Block a user