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

Miscellaneous

  • Brendan Gregg explaining why one should not shout in the data center - link
  • Gossip Glomers - a series of distributed systems challenges brought to you by Fly.io - link