Open-Source Engineer & Contributor

A collection of deep, implementation-level curricula for engineers who want to contribute seriously to major open-source projects — not just fix typos, but build the kind of sustained understanding that leads to committer status.

Each curriculum is designed around how the project is actually developed, tested, reviewed, and maintained by its core contributors. Labs reference real source code, real issue trackers, and real contribution workflows.


Curricula

ProjectFocusStatus
Apache TezDAG execution engine on YARN — used by Hive, Pig, and custom batch pipelinesActive
OpenSearchDistributed search & analytics engine on Apache Lucene — search, log analytics, observabilityActive
FirecrackerKVM-based microVM monitor (VMM) in Rust — secure, fast, minimal virtualization for serverless (powers AWS Lambda & Fargate)Active
Terminals, PTYs & MultiplexersBuild a terminal emulator and a tmux-style multiplexer in Rust, from /dev/ptmx upward — PTYs, VT parsing, screen buffers, rendering, client/server sessionsActive
The Linux KernelBuild and boot your own kernel, write drivers, debug under QEMU+GDB, read any subsystem cold — and get a patch merged into mainline by emailIn progress
Ember: A Scripting RuntimeBuild a Lua-like language in Rust — lexer, Pratt parser, bytecode compiler, stack VM, tables, closures, upvalues, tracing GC, embedding API, sandbox, and a Cranelift JITActive
Apache KafkaDistributed log — producers, consumers, brokers, replication, Streams APIPlanned
Apache FlinkStreaming and batch — state machines, checkpointing, watermarks, operatorsPlanned
Apache SparkUnified analytics — scheduler, shuffle, RDD lineage, SQL planningPlanned
Apache HadoopHDFS, YARN, MapReduce — the foundation layer for everything abovePlanned

How to Use This Book

Each curriculum is self-contained. Start at the curriculum's Introduction page and work through its levels sequentially. Levels build on each other — skipping levels skips foundations that later labs depend on.

There are three kinds of curriculum here:

  • Contribute-to-a-project curricula (Apache Tez, OpenSearch, Firecracker) teach you a large existing codebase and the contribution workflow around it, ending in a merged pull request.
  • Build-a-system curricula (Terminals, PTYs & Multiplexers; Ember) teach a domain by having you implement a simplified version of it from first principles, ending in a system you can explain end to end.
  • Both at once (The Linux Kernel) — you build enough by hand to understand the machine, and you master a contribution workflow unlike anything else in open source, ending in a patch merged into mainline.

What you will need for any curriculum:

  • 3+ years on production-grade codebases in the project's primary language
  • Comfort reading large, unfamiliar codebases without a guide
  • Git, the project's build tool, and an editor you can drive
  • Patience: the path from contributor to committer is measured in months to years

Select a curriculum from the table above or from the sidebar to begin.