diff --git a/org/study_plan.org b/org/study_plan.org new file mode 100644 index 0000000..0275a5b --- /dev/null +++ b/org/study_plan.org @@ -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 |