Library
Here is a list of books, articles, blog posts… I’ve collected over the years and consider to be readworthy.
Important Note. I post here only the resources which I perceive to be more advanced or foundational in its nature. Basic textbooks, introductory blog posts are often easy to find after basic googling. That is why you’ll not find here yet another monad tutorial or introductory scala textbooks.
Operating Systems, Networks, Systems Performance
Books
- Operating Systems: Three Easy Pieces, Remzi & Andrea Arpaci-Dusseau - My favourite book on OS topics. Written in the style with the tone dialogue of professor and student. link
- Modern Operating Systems, Tanenbaum - So called Bible of Operating Systems. I like it as a reference book. link
- Systems Performance, Brendan Gregg - link
- Computer Networking: A Top-Down Approach, J. Kurose & K. Ross - link
- Learning eBPF: Programming the Linux Kernel for Enhanced Observability, Networking, and Security, Liz Rice - link
- BPF Performance Tools, Bendan Gregg - link
- How Linux Works, 3rd Edition: What Every Superuser Should Know, Brian Ward - link
Articles
- Unlocking Kafka’s Potential: Tackling Tail Latency with eBPF - link
- Translation Caching: Skip, Don’t Walk (the Page Table) - link
Storage
Books
- Database Internals: A Deep Dive Into How Distributed Data Systems Work, Alex Petrov - link
Articles
- Are You Sure You Want to Use MMAP in Your Database Management System? link
- Deep Dive Into Apache Kafka | Storage Internals - link
- io_uring for High-Performance DBMSs: When and How to Use It - link
Other
- toydb - Distributed SQL database in Rust, written as an educational project - link
Distributed Systems
Books
- Designing Data-Intensive Applications, 2nd Edition - link
- Kafka - The Definitive Guide: Real-Time Data and Stream Processing at Scale - link
Articles
- Raft, In Search of an Understandable Consensus Algorithm - link
- Consistent hashing algorithm - link
- Probably Faster Than You Can Count: Scalable Log Search with Probabilistic Techniques - link
- How to Avoid Cascading Failures in Distributed Systems - link
JVM, runtimes, programming languages
Books
- Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond, Scott Oaks - link
- Rust for Rustaceans: Idiomatic Programming for Experienced Developers, Jon Gjengset - link
Articles
- A Deep Dive into JVM Start-up - link
- The Ultimate Guide to Java Virtual Threads - link
- Project Loom: Structured Concurrency in Java - link
- Project Loom: Structured Concurrency in JDK 25 - What’s New - link
- Introduction to JVM Method Profiling - link
- Go Scheduler - link
- The Typestate Pattern in Rust - link
Functional Programming
Books
- Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#, Scott Wlaschin - link
- Type-Driven Development with Idris, Edwin Brady - link
- Homotopy Type Theory: Univalent Foundations of Mathematics - link
- Category Theory for Programmers, Bartosz Milewski - link
- Algebra Driven Design, Sandy Maguire - link
Articles
- Functional Pearls - Functional pearls are elegant, instructive examples of functional programming. They are supposed to be fun, and they teach important programming techniques and fundamental design principles - link