· 5 min read
Books and Specs I enjoyed reading
I love reading. I’ve read many books and specs, so much so that I’ve lost count and track of everything I’ve read.
As I’m getting into the rhythm of writing on this blog, I thought I would share some of my favorite books and specs I’ve read over the years.
Books
Books are my favorite way of learning new subjects. Here are some that I remember and liked reading:
Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau: One of my all-time favorite books. This book demystified so much for me; I’ll be eternally grateful to the authors for making the book freely available. I read it using the PDFs they provide on the website, but I had to get my hands on the book, so I bought a physical version.
The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit: The book is good. The reading can’t be described as pleasant as you have to think about hard concepts, but the authors do a great job with the examples. I first learned about Amdahl’s law in this book, and I see it everywhere now.
The Art of 64-Bit Assembly Language by Randall Hyde: A great book with a big caveat: it teaches assembly on the Windows platform. I’m not a big fan of Windows, so I followed the book with NASM on Linux, and instead of the C++ used in the book, I used Zig. I loved learning about stack alignment and discovering the difference between Windows and Linux as I did my research to run the project on Linux.
Linkers and Loaders by John R. Levine: Great book and a classic. I didn’t finish the book, but by the time I was on chapter 5, I already had a great understanding of linkers and even attempted to implement one myself.
Beej’s Guide to C Programming by Brian “Beej Jorgensen” Hall: I learned C with this book. I loved it. I feel like the author writes as if he were talking to you in person, so he beats around the bush sometimes. I’ve read his book on Linux networking and parts of his other material like those on GDB and the general networking guide.
Modern Computer Architecture and Organization by Jim Ledin: I loved this book. I had so many aha moments and learned so much about CPUs and GPUs. I remember hating the beginning of the book, but as I got further into the book, I started appreciating it.
Programming language books: I read The Rust Programming Language by Steve Klabnik and Carol Nichols, Rust for Rustaceans by Jon Gjengset (a big portion of it — I didn’t finish), and Learning Go: An Idiomatic Approach to Real-World Go Programming by Jon Bodner (I don’t remember why, but I didn’t like the book at the time).
Kubernetes in Action, Second Edition by Marko Lukša: When I changed roles, I had to catch up on Kubernetes, and as books are my favorite learning tool, I devoured Kubernetes in Action. At the time, the book was still being worked on, so I had to wait for Part 5 to be completed. I submitted many comments on typos and things that were wrong (I hope some of those got used).
I have read many, many more over the years. Some I just forgot about; others I use to look up things constantly, like the Engineering a Compiler book, which I used to learn about scanners and parsers when I was implementing a parser for the Protoscope language used by Protobuf and gRPC. I also use the Grokking Algorithms book from time to time when I want to consult an algorithm or data structure. I had a blast reading the chapters on trees (trees are amazing and cool).
That will be all on books.
Specs and RFCs
I have spent countless hours reading RFCs and official specs for things. I love myself some specs, and I usually read them from top to bottom. I should say I used to, because I haven’t read an RFC in years now. Here are some that I remember:
RFC 791 - Internet Protocol: My favorite RFC just because it was the first one I read when I was really trying to understand networking concepts deeply.
RFC 793 - Transmission Control Protocol: I also loved this one.
RFC 768 - UDP
RFC 2616 - HTTP/1.1
RFC 1035 - DNS
RFC 7519 - JSON Web Token
RFC 2246 - TLS v1.0
I read many others as well — I have a list with many that have a ticked-off checkbox saying I read them, but I don’t remember anymore, so I’m not gonna list them here :D. I also read many OpenID specs during a time when I was trying to implement an identity provider.
Closing thoughts
In hindsight, I can really say I love reading.
I listen to audiobooks as well, but those were not mentioned here. There are also papers I’ve loved reading, but those will have to wait for another occasion.
I’m currently working through some books that might get added to the list soon.

Originality often consists in linking up ideas whose connection was not previously suspected.