05 — Papers and Talks¶
Ten pieces of source material every serious C engineer has consumed. Not “read once” — internalized. These are the references your senior colleagues will assume you know when they say “yeah, cache-line contention, standard Drepper stuff.” Watch them in the sequence below; each was verified live in mid-2026.
The ten¶
# |
Title |
Author |
Year |
Format |
Length |
Link |
Why this |
|---|---|---|---|---|---|---|---|
1 |
What Every Programmer Should Know About Memory |
Ulrich Drepper (glibc maintainer at the time) |
2007 |
Paper (PDF) |
114 pages |
The reference on caches, TLB, NUMA, and prefetching. §1-3 mandatory; §4-6 skim; §6.5.8 NUMA advice is partly dated per SO thread — mind the year. |
|
2 |
How I Program C |
Eskil Steenberg |
2016 |
Talk |
1h 47m |
Naming conventions, module boundaries, why he never uses IDEs. Practitioner-level hygiene. |
|
3 |
Fork Yeah! The Rise and Development of illumos |
Bryan Cantrill |
2011 (LISA’11) |
Talk |
1h 4m |
The best history-of-Unix-culture talk on the internet. Cantrill’s other talks ( |
|
4 |
A History of Clang and LLVM |
Chris Lattner + Vikram Adve |
2007 LLVM devmtg (+ 2025 Pragmatic Engineer retrospective) |
Talks |
45m + 3h |
https://llvm.org/devmtg/2007-05/ · retrospective: search “Pragmatic Engineer Chris Lattner 25 years of LLVM” |
You will use clang every day. Know where it came from and why. |
5 |
The Development of the C Language |
Dennis M. Ritchie |
1993 (HOPL-II) |
Paper |
22 pages |
Straight from Ritchie. Why C looks the way it does — the PDP-11, B, BCPL, the union with UNIX. |
|
6 |
Some Were Meant for C |
Stephen Kell |
2017 (Onward!) |
Paper |
20 pages |
https://www.cl.cam.ac.uk/~srk31/research/papers/kell17some-preprint.pdf |
The academic case that C is the communication language of systems, not a legacy language to be replaced. Cite this in arguments. |
7 |
Latency Numbers Every Programmer Should Know |
Jeff Dean (via Peter Norvig) |
2012, still updated |
Reference card |
1 page |
https://gist.github.com/jboner/2841832 · interactive: https://colin-scott.github.io/personal_website/research/interactive_latency.html |
Memorize order-of-magnitude by month 6. |
8 |
The Night Watch |
James Mickens |
2013 |
Essay |
8 pages |
Systems humor that is also systems truth. What debugging C at 2 AM actually feels like. |
|
9 |
Papers We Love (curated) |
community |
2014-present |
Repo of PDFs |
Vary |
Systems, compilers, OS papers, curated. Pick one per month. |
|
10 |
Casey Muratori — “Clean” Code, Horrible Performance |
Casey Muratori |
2023 |
Talk / blog |
30 min |
https://www.computerenhance.com/p/clean-code-horrible-performance |
The definitive counter-argument to Uncle Bob’s clean-code-at-any-cost school. Read + measure yourself. |
Bellard: no talks, all code¶
Fabrice Bellard (QEMU, FFmpeg, TCC, TinyEMU, JSLinux) almost never gives studies. His talks are his repositories: https://bellard.org. Read the TCC source in M12 — it is a full C99 compiler in ~30k lines of C. That is the talk.
What most people get wrong about “must-read” lists¶
They save the PDF. Reading Drepper on a Sunday afternoon in one sitting is worth more than a folder full of unread papers. Block 3 hours in month 6, read §1-3 of Drepper, take notes by hand. Same for Ritchie’s HOPL paper. Consumption without notes ≠ consumption.
Return to README.md · Next: 06_blogs_and_newsletters.md