Loading...
Catalog
Pricing
Roadmap
Feedback
Sign in with GitHub
Challenges
New here?
Start here
to learn how challenges work.
Build your own Shell
Learn about parsing shell commands, executing programs and more
FREE THIS MONTH
This challenge is free until 1 April 2026!
Start
Build your own Redis
Learn about TCP servers, the Redis protocol and more
FREE
This challenge is free until 1 May 2026!
Start
Build your own grep
Learn about regex syntax: character classes, quantifiers and more
33 stages
Build your own Interpreter
Learn about tokenization, ASTs, tree-walk interpreters and more.
84 stages
Build your own BitTorrent
Learn about .torrent files, the BitTorrent Peer Protocol and more
19 stages
Build your own Kafka
Learn about TCP servers, the Kafka wire protocol and more.
25 stages
Build your own Git
Learn about git objects, plumbing commands and more
7 stages
Build your own SQLite
Learn about SQL syntax, SQLite's file format, B-trees and more
9 stages
Build your own DNS server
Learn about the DNS protocol, DNS record types and more.
8 stages
Build your own HTTP server
Learn about TCP servers, the HTTP protocol and more
14 stages
Build your own Claude Code
Learn about LLM APIs, tool calling, agent loops and more
FREE DURING BETA
This challenge is free to try when it's in beta. We keep challenges in beta for a few weeks to gather feedback.
Start
Language Tracks
Rust
Popular
This track is a favourite among our learners.
361 stages
Start
Go
Popular
This track is a favourite among our learners.
361 stages
Start
Python
Popular
This track is a favourite among our learners.
361 stages
Start
C
361 stages
Start
C#
361 stages
Start
C++
361 stages
Start
Clojure
204 stages
Start
Crystal
97 stages
Start
Dart
73 stages
Start
Elixir
315 stages
Start
Gleam
321 stages
Start
Haskell
313 stages
Start
Java
361 stages
Start
JavaScript
361 stages
Start
Kotlin
355 stages
Start
OCaml
254 stages
Start
Odin
287 stages
Start
PHP
294 stages
Start
Ruby
330 stages
Start
Scala
279 stages
Start
TypeScript
361 stages
Start
Zig
361 stages
Start