Bookshelf
things i've read, am reading, or have queued up.
A book makes it here only if it changed something about how I write code or look at a problem. Annotations are kept short on purpose.
systems & performance
- read Computer Systems: A Programmer's Perspective — Bryant, O'Hallaron Single best mental model of the machine I have read.
- read Effective Modern C++ — Scott Meyers Made me stop writing C++03 in disguise.
- reading Designing Data-Intensive Applications — Martin Kleppmann Distributed systems vocabulary, finally concrete.
- queue The Linux Programming Interface — Michael Kerrisk For when I need to know exactly what a syscall is doing.
- queue What Every Programmer Should Know About Memory — Ulrich Drepper The cache hierarchy paper, read as a slow book.
markets & microstructure
- reading Trading and Exchanges — Larry Harris Slow, careful, canonical. Where market microstructure starts.
- queue Algorithmic and High-Frequency Trading — Cartea, Jaimungal, Penalva Bridge from microstructure intuition to working math.
- queue Inside the Black Box — Rishi Narang For the shape of a quant firm, not the math.
algorithms & cp
- read Competitive Programmer's Handbook — Antti Laaksonen Where I started. Free PDF, still the best on-ramp.
- read Competitive Programming 4 — Halim, Halim Reference more than read-through. Topic by topic.
off-topic
- read The Art of Doing Science and Engineering — Richard Hamming On taste, persistence, and choosing what to work on.
papers
- 2019 Parsing Gigabytes of JSON per Second — Langdale, Lemire The simdjson paper. Worth reading twice. Worth implementing once.
- 2013 Decoding Billions of Integers per Second — Lemire, Boytsov Clean entry to thinking in SIMD throughput, not scalar steps.
- 2011 Disruptor: High Performance Alternative to Bounded Queues — Thompson et al. LMAX. Required reading for anyone who wants to move events fast.