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 BookProposal SE-0304

Distributed OLTP SQL

what makes scalable, robust distributed database engines so hard?

toyDB ArchitectureDeep Dive TiKVCockroachDB Design

Fuzzing with AFL

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

Fuzzing: Breaking Things with Random Inputsmykter/afl-trainingFuzzing-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 MinutesarXiv: GQL @ SIGMOD '22ByteGraph paper

Storage-level systems engineering

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

SledAtomic Commit in SQLite

Web compiler infrastructure

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

esbuildSWCGLSLX

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 ChaCha20The 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?

WasmtimeUnderstanding WASTBuild 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 PaperNix PillsNixOS Paper

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

Ethereum

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

Yellow PaperDeconstructing a Solidity ContractEVM Deep DivesEthereum in numbersEIP-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 fastRegex as a VMCVE-2022-24713qntm/greenery

Containers

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

Docker TutorialWhat 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 ShadersFluid SimulationswissglTF.js backendsThe Case for Use.GPU

JAX

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

DeepMind on JAXTutorial: JAX 101Autodidax: 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 scratchLichess source codeScavenger Hunt

Twitter's recommendation algorithm

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

Blog postSource codeNeural network code

Gossip Glomers

solving distributed systems challenges by Fly.io and Kyle Kingsbury

Gossip GlomersOur Python bindings

Dataframe libraries

dataframes as embedded OLAP databases and in-memory query engines

Polars PerformancePolars BookWhy DuckDB

Numeric performance optimization

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

CUDA TutorialFast Matrix Multiplication on CPUOptimizing a CUDA Matmul KernelLive Code

LangChain

friendly gadgets for turning large language models into useful applications

Question Answering over DocsChatGPT CloneAuto-GPT

Hosted by Hao Wang '23

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