Harvard
Systems
Reading Group

2022/09 — 2023/05

Building Construction - Dymaxion Deployment Unit, 1941/1944 by R. Buckminster Fuller

reading about computer systems: the building blocks of our applications

✨ curation criteria

  • broad interest to systems and application designers
  • excellent quality of prose
  • opportunity for hands-on learning (i.e., actually used)
  • not so serious: programming should be fun, dang it!
“After HSRG, I started looking at computers in a totally different way. It's like an X-ray in a million colors. Now instead of seeing the GUI, I only see mutexes and codewords. what's a TIOCGWINSZ? I can no longer get hammered at parties because I think of rowhammer. Bunnies are scary. My firstborn child will be named Ferris.”

But more seriously…

All are invited to join us, regardless of past background — we believe that having diverse thoughts is important to learning together as a collective.

All you need is a computer. We'll read during the session. This is because sharing knowledge with others is more fun, provides helpful context, and builds a community deeply valuing curiosity and individual empowerment.

You're not expected to have attended previous weeks.

Okay fine, so whatd'ya got?

Computer networks “speedrun”

ethernet, 802.11 wifi, bluetooth, switched Ethernet, the Internet, brief intro to BGP, and IPv6

Networks Textbook

Networking redux

UDP, TCP, congestion control, TLS, HTTP, QUIC, multicast, WebRTC, and DNS

Networks Textbook

Concurrency in Swift

design of a structured concurrency model; for better, safer, clearer, and more reliable code

The Swift Book Proposal SE-0304

Distributed OLTP SQL

what makes scalable, robust distributed database engines so hard?

toyDB Architecture Deep Dive TiKV CockroachDB Design

Fuzzing with AFL

how to find vulnerabilities in complex software, and validate its correctness

Fuzzing: Breaking Things with Random Inputs mykter/afl-training Fuzzing-101

The essence of graph databases

building a graph database from the ground up, writing an original, minimal system in Rust

Learn Cypher in Y Minutes arXiv: GQL @ SIGMOD '22 ByteGraph paper

Storage-level systems engineering

diving into embedded database design: lessons about reliability, hardware, & performance

Sled Atomic Commit in SQLite

Web compiler infrastructure

advances in the most popular compiler and transpiler infrastructure in the world

esbuild SWC GLSLX

Practical authenticated encryption

what is AEAD? dive into ChaCha20-Poly1305, and make your own end-to-end encrypted chat

It takes two to ChaCha (Poly) The design of ChaCha20 The design of Poly1305

WebAssembly

an exciting new portable binary format. what is it, and how do we use it? is it just for the web?

Wasmtime Understanding WAST Build your own WebAssembly Compiler

Nix: Reproducible builds

it's a language, it's a package manager, it's an OS! isolated and declarative environments

Nix White Paper Nix Pills NixOS Paper

Hosted by Conrad Kramer, HKS TAPP '22-'23

Ethereum

systems engineering in the world's largest signed, distributed code execution platform

Yellow Paper Deconstructing a Solidity Contract EVM Deep Dives Ethereum in numbers EIP-1153

Hosted by Hao Wang '23

Regular expressions

regex are everywhere, but how do they actually work? let's learn the algorithms and do some alchemy

Regex can be simple and fast Regex as a VM CVE-2022-24713 qntm/greenery

Containers

containers let us run and distribute applications. how do they work under the hood?

Docker Tutorial What even is a container? How Containers Work!

GPU computing with WebGL

websites can touch GPUs and be >100x faster, from graphics & ML to generative art

The Book of Shaders Fluid Simulation swissgl TF.js backends The Case for Use.GPU

JAX

inner workings of a high-performance ML library with roots in functional programming

DeepMind on JAX Tutorial: JAX 101 Autodidax: JAX core from scratch

Software architecture via Lichess

case study on a large-scale webapp, with live updates for 100,000,000 rated games / month

Starting from scratch Lichess source code Scavenger Hunt

Twitter's recommendation algorithm

how does Twitter decide what to show you? let's find out together!

Blog post Source code Neural network code

Gossip Glomers

solving distributed systems challenges by Fly.io and Kyle Kingsbury

Gossip Glomers Our Python bindings

Dataframe libraries

dataframes as embedded OLAP databases and in-memory query engines

Polars Performance Polars Book Why DuckDB

Numeric performance optimization

we will write and tune matrix multiplication on CPU, then on the GPU as a CUDA kernel

CUDA Tutorial Fast Matrix Multiplication on CPU Optimizing a CUDA Matmul Kernel Live Code

LangChain

friendly gadgets for turning large language models into useful applications

Question Answering over Docs ChatGPT Clone Auto-GPT

Hosted by Hao Wang '23

Organized by your host, Eric Zhang (@ekzhang1), with help from @Asherjnoel and others.