Loading...
CodeCrafters
Catalog
Badges
Vote
Upgrade
Sign in with GitHub
Challenges
New here?
Start here
to learn how challenges work.
Build your own Redis
Learn about TCP servers, the Redis protocol and more
55 stages
Start
Build your own HTTP server
Learn about TCP servers, the HTTP protocol and more
11 stages
Start
Build your own Interpreter
Learn about tokenization, ASTs, tree-walk interpreters 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
Build your own Shell
Learn about parsing shell commands, executing programs and more
12 stages
Start
Build your own Git
Learn about git objects, plumbing commands and more
7 stages
Start
Build your own DNS server
Learn about the DNS protocol, DNS record types and more.
8 stages
Start
Build your own grep
Learn about regex syntax: character classes, quantifiers and more
15 stages
Start
Build your own BitTorrent
Learn about .torrent files, the BitTorrent Peer Protocol and more
11 stages
Start
Build your own SQLite
Learn about SQL syntax, SQLite's file format, B-trees and more
9 stages
Start
Build your own Docker
Learn about kernel namespaces, chroot, the registry API and more
6 stages
Start
Language Tracks
Rust
Popular
This track is a favourite among our learners.
182 stages
Start
Go
Popular
This track is a favourite among our learners.
182 stages
Start
Python
Popular
This track is a favourite among our learners.
182 stages
Start
C
103 stages
Start
C#
116 stages
Start
C++
128 stages
Start
Clojure
55 stages
Start
Crystal
55 stages
Start
Elixir
66 stages
Start
Gleam
112 stages
Start
Haskell
99 stages
Start
Java
113 stages
Start
JavaScript
116 stages
Start
Kotlin
71 stages
Start
Nim
6 stages
Start
OCaml
48 stages
Start
PHP
61 stages
Start
Ruby
107 stages
Start
Scala
55 stages
Start
TypeScript
116 stages
Start
Zig
134 stages
Start