Skip to content
I collect too many books, so why not things to read and watch as well?
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Things to Read and Watch and Stuff

Algorithms and Data Structures

Data structure: the treap! by Julia Evans

Patience is a Virtue: Revisiting Merge and Sort on Modern Processors by Badrish Chandramouli and Jonathan Goldstein


Bigtable: A Distributed Storage System for Structured Data by Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber

Calvin: Fast Distributed Transactions for Partitioned Database Systems by Alexander Thomson, Thaddeus Diamond, Shu-Chun Weng, Kun Ren, Philip Shao, and Daniel J. Abadi

Cassandra - A Decentralized Structured Storage System by Avinash Lakshman and Prashant Malik

Consistency Tradeoffs in Modern Distributed Database Design by Daniel J. Abadi

Dremel: Interactive Analysis of Web-Scale Datasets by Sergey Melnik, Andrey Gubarev, Jing Jing Long, Geoffrey Romer, Shiva Shivakumar, Matt Tolton, and Theo Vassilakis

Dynamo: Amazon’s Highly Available Key-value Store by Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshal, and Werner Vogels

HFile: A Block-Indexed File Format to Store Sorted Key-Value Pairs by Schubert Zhang

Improved Query Performance with Variant Indexes by Patrick O'Neil and Dallan Quass

MapReduce: Simplified Data Processing on Large Clusters by Jeffrey Dean and Sanjay Ghemawat

NoSQL Databases: a Survey and Decision Guidance by Felix Gessert

Principles of Transaction-Oriented Database Recovery by Theo Haerder and Andreas Reuter

Query Execution in Column-Oriented Database Systems by Daniel J. Abadi

Scuba: Diving into Data at Facebook by Lior Abraham, John Allen, Oleksandr Barykin, Vinayak Borkar, Bhuwan Chopra, Ciprian Gerea, Daniel Merl, Josh Metzler, David Reiss, Subbu Subramanian, Janet L. Wiener, and Okay Zed

SFS: Random Write Considered Harmful in Solid State Drives by Changwoo Mina, Kangnyeon Kimb, Hyunjin Choc, Sang-Won Leed, and Young Ik Eome

Spanner: Google’s Globally-Distributed Database by James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, and Dale Woodford

Stream processing, Event sourcing, Reactive, CEP… and making sense of it all by Martin Kleppman

TAO: Facebook’s Distributed Data Store for the Social Graph by Nathan Bronson, Zach Amsden, George Cabrera, Prasad Chakka, Peter Dimov, Hui Ding, Jack Ferris, Anthony Giardullo, Sachin Kulkarni, Harry Li, Mark Marchukov, Dmitri Petrov, Lovro Puzar, Yee Jiun Song, and Venkat Venkataramani

The Cache Sketch: Revisiting Expiration-based Caching in the Age of Cloud Data Management by Felix Gessert, Michael Schaarschmidt, Wolfram Wingerath, Steffen Friedrich, and Norbert Ritter

The Design and Implementation of Modern Column-Oriented Database Systems by Daniel Abadi, Peter Boncz, Stavros Harizopoulos, Stratos Idreos, and Samuel Madden

The Google File System by Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung

The Log-Structured Merge-Tree (LSM-Tree) by Patrick O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth O'Neil

Turning the database inside-out with Apache Samza by Martin Kleppmann

Distributed Systems

2PC or not 2PC, Wherefore Art Thou XA? by Dan Prichett

A comprehensive study of Convergent and Commutative Replicated Data Types by Marc Shapiro, Nuno Pregui¸ca, Carlos Baquero, and Marek Zawirsk

Algorithmic Nuggets in Content Delivery by Bruce M. Maggs and Ramesh K. Sitaraman

An Introduction to Distributed Systems by Kyle Kingsbury

An Introduction to Programming with Threads by Andrew D. Birrell

Anna Concurrenina by Kyle Kingsbury (presentation)

Avoiding Two Phase Commit, Redux by Dan Prichett

Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services by Seth Gilbert and Nancy Lynch

CockroachDB Design

Consistency, Availability, and Convergence by Prince Mahajan, Lorenzo Alvisi, and Mike Dahlin

Consistency in a Partitioned Network: A Survey by Susan B. Davidson, Hector Garcia-Molina, and Dale Skeen

Distibuted systems for fun and profit by Mikito Takada

Eventually Consistent by Werner Vogels

Harvest, Yield, and Scalable Tolerant Systems by Armando Fox and Eric A. Brewer

Impossibility of Distributed Concensus with One-Faulty Process by Michael J. Fischer, Nancy A. Lynch, and Michael S. Patterson

In Search of an Understandable Consensus Algorithm by Diego Ongaro and John Ousterhout

Jepsen Analyses by Kyle Kingsbury

Large-scale cluster management at Google with Borg by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, and John Wilkes

Lifeguard: SWIM-ing with Situational Awareness by Armon Dadgar, James Phillips, and Jon Currey

Linearizability: A Correctness Condition for Concurrent Objects by Maurice P. Herlihy and Jeannette M. Wing

Making reliable distributed systems in the presence of software errors by Joe Armstrong

Notes on Distributed Systems for Young Bloods by Jeff Hodges

Paxos Made Simple by Leslie Lamport

Sharing Memory Robustly in Message-Passing Systems by Hagit Attiya, Amotz Bar-Noy, and Danny Dolev

Spanner, TrueTime & The CAP Theorem by Eric Brewer

The Byzantine Generals Problem by Leslie Lamport, Robert Shostak, and Marshall Pease

The Chubby lock service for loosely-coupled distributed systems by Mike Burrows

The Dangers of Replication and a Solution by Jim Gray, Pat Helland, Patrick O'Neil, and Dennis Shasha

The Log: What every software engineer should know about real-time data's unifying abstraction by Jay Kreps

The Part-Time Parliament by Leslie Lamport

Time, Clocks and the Ordering of Events in a Distributed System by Leslie Lamport

Your Coffee Shop Doesn’t Use Two-Phase Commit by Gregor Hohpe


AWS Application Load Balancer Summary by Jerry Hargrove

Cluster Schedulers by Cindy Sridharan

Envoy by Cindy Sridharan

Google’s approach to observability by @rakyll

Monitoring and Observability by Cindy Sridharan

On Designing and Deploying Internet-Scale Services by James Hamilton

Pattern: Service Mesh by Phil Calçado

Queues Don't Fix Overload by Fred Hebert

Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy

Tenets of SRE by Stephen Thorne

Tout est Terrible by Fred Hebert

Why Amazon DynamoDB isn’t for everyone by Forrest Brazeal

Programming Languages


Functional Programming Jargon by hemanth


How Discord Scaled Elixir to 5,000,000 Concurrent Users by Stanislav Vishnevskiy


Of Boxes and Trees - Smart Pointers in Rust by Matthias Endler

What's a reference in Rust? by Julia Evans


ACIDRain: Concurrency-Related Attacks on Database-Backed Web Applications by Todd Warszawski and Peter Bailis

Cryptopals Crypto Challenges

Software Design

Actor Model of Computation: Scalable Robust Information Systems by Carl Hewitt

Don't Build a Distributed Monolith by Ben Christensen (presentation)

End-to-End Arguments in System Design by J.H. Saltzer, D.P. Reed, and D.D. Clark

Hints for Computer System Design by Butler W. Lampson

How Discord Indexes Billions of Messages by Jake Heinz

How do you cut a monolith in half? by tef

Interesting Codebases by Mark Papadakis

On the Criteria To Be Used in Decomposing Systems into Modules by D.L. Parnas

Program design in the UNIX environment by Rob Pike and Brian W. Kernighan

Questioning the Lambda Architecture by Jay Kreps

The 4+1 View Model of Architecture by Philippe B. Kruchte

You can’t perform that action at this time.