CodeCrafters — Is It Worth It?
Why I Recommend CodeCrafters to Every Senior Engineer Who Feels Stuck
TL;DR: CodeCrafters is a platform where you rebuild real developer tools (Redis, Git, SQLite, Kafka) from scratch in your language of choice. It's not for beginners — it's designed for mid- to senior-level engineers who want to understand how systems work under the hood. The git-push workflow, support for 20+ languages, and progressively difficult stages make it one of the best investments I've made in my engineering career. Try it here.
What Is CodeCrafters?
There's a moment in every experienced developer's career where LeetCode stops being useful.
You've solved enough mediums. You know your way around trees, graphs, and dynamic programming. You can whiteboard a topological sort in your sleep. And yet — you still feel like there are embarrassing gaps in your understanding of the tools you use every single day.
How does Redis actually persist data? What happens inside Git when you run git clone? How does your shell parse a pipeline like cat file.txt | grep "error" | wc -l?
If those questions make you slightly uncomfortable, you're not alone. And that's exactly the gap that CodeCrafters was built to fill.
CodeCrafters is a Y Combinator-backed platform where you rebuild real-world developer tools from scratch — Redis, Git, SQLite, Kafka, HTTP servers, DNS servers, a shell, a BitTorrent client, an interpreter, and more.
These aren't toy projects. The Redis challenge alone has 97 stages. The Shell challenge has 47. Each one takes you progressively deeper into the internals of systems you've been treating as black boxes for years.
The tagline on their homepage says it best:
"We strive to provide a proper workout. You won't become a great swimmer by watching the Olympics on YouTube."
How CodeCrafters Works — The Git-Push Workflow
Here's what I love about the workflow — it respects the fact that you're a professional:
Pick a challenge from the catalogue (Redis, Git, Kafka, etc.)
Choose your language — they support 20+ languages, including Java, Go, Rust, Python, TypeScript, C, Kotlin, Haskell, and more
Clone the starter repo and open it in your own IDE — VS Code, IntelliJ, Neovim, whatever you prefer
Write your implementation, then
git pushGet instant feedback — their servers run tests against your code in seconds and return actionable results
No web-based toy editors. No artificial time constraints. Just you, your editor, and a hard problem.
This is a huge differentiator. Most coding platforms force you into a browser-based editor with limited autocomplete and no access to your toolchain. CodeCrafters lets you use your actual development environment — the same debugger, the same extensions, the same terminal you use at work.
All 11 CodeCrafters Challenges in 2026
Here's the full catalogue — each one is a deep dive into a real system:
| Challenge | What You'll Learn | Stages |
|---|---|---|
| Build Your Own Redis | TCP servers, RESP protocol, data persistence, replication | 97 |
| Build Your Own Shell | Command parsing, process execution, pipes, builtins | 47 |
| Build Your Own Interpreter | Tokenization, parsing, ASTs, tree-walk evaluation | 84 |
| Build Your Own Grep | Regular expressions, NFA/DFA, pattern matching | 33 |
| Build Your Own Kafka | Distributed systems, message queues, binary protocols | 25 |
| Build Your Own BitTorrent | Peer-to-peer networking, Bencode, file sharing protocols | 19 |
| Build Your Own HTTP Server | TCP, HTTP/1.1, request parsing, content negotiation | 14 |
| Build Your Own DNS Server | UDP, DNS wire format, recursive resolution | — |
| Build Your Own Git | Object model, plumbing commands, packfiles | 7 |
| Build Your Own SQLite | B-trees, page-based storage, SQL parsing | — |
| Build Your Own Claude Code | LLM APIs, tool calling, agent loops | 6 |
That last one — Build Your Own Claude Code — is a sign of how current the platform stays. They're not teaching you technology from 2015.
CodeCrafters vs LeetCode — Why Building Systems Beats Algorithm Drilling
I'm not saying LeetCode is useless. It serves a purpose — especially if you're actively interviewing. But here's the uncomfortable truth about algorithm practice:
It teaches you to solve puzzles. It doesn't teach you to build systems.
When I built my own Redis on CodeCrafters, I had to:
Implement a TCP server that handles concurrent connections
Parse the RESP (Redis Serialization Protocol) binary format
Build an in-memory key-value store with TTL-based expiration
Implement RDB persistence to survive restarts
Handle replication between a master and replica
After that, every conversation about caching, distributed state, and network protocols felt different. Not because I memorised facts, but because I'd written the code myself. The mental model sticks when your fingers have typed it.
As Vladislav Ten (SWE at Microsoft) put it:
"In a perfect world, job interviews ask for assignments like CodeCrafters instead of LeetCode."
Here's how the two platforms compare at a glance:
| LeetCode | CodeCrafters | |
|---|---|---|
| Focus | Algorithms & data structures | Systems programming & architecture |
| Project size | Single-function problems | Multi-stage, real-world systems |
| Editor | Browser-based | Your own IDE |
| Best for | Interview prep (coding rounds) | Interview prep (system design) + deep learning |
| Skill level | Beginner to advanced | Intermediate to advanced |
The two aren't competitors — they're complementary. LeetCode for the coding round, CodeCrafters for the system design round.
Who Should Use CodeCrafters?
Let me be direct — CodeCrafters isn't for everyone:
It's perfect if you are:
A mid-to-senior engineer who wants to understand systems at a deeper level
Someone learning a new language wants a real project (not another TODO app)
An engineer preparing for systems design interviews with hands-on practice
A developer who learns best by building, not watching
It's probably not for you if:
You're a complete beginner still learning syntax
You want a free platform (there is a free trial, but full access requires a membership)
You're looking purely for competitive programming / LeetCode-style prep
Learn a New Programming Language the Right Way
Here's something that surprised me — CodeCrafters is one of the best ways I've found to learn a new programming language.
When I wanted to get serious about Rust, I didn't want to build another CLI tool or follow a tutorial that held my hand through println!("Hello, World!"). I wanted to write the kind of Rust that exercises ownership, lifetimes, and concurrency naturally — because the problem demands it.
Building a Redis server in Rust does exactly that. You're forced to handle concurrent TCP connections (hello, Arc<Mutex<T>>), parse binary protocols (byte slicing, pattern matching), and manage memory-efficient data structures. You learn the language by doing what the language was designed for.
The same applies whether you choose Go, Java, Kotlin, Python, TypeScript, C++, Haskell, or any of the 20+ supported languages. The challenge stays the same — the language-specific thinking is what changes.
Supported Languages
CodeCrafters supports a wide range of languages, including C, C++, C#, Clojure, Crystal, Dart, Elixir, Gleam, Go, Haskell, Java, JavaScript, Kotlin, OCaml, Odin, PHP, Python, Ruby, Rust, Scala, TypeScript, and Zig.
Not every language is available for every challenge, but core languages like Go, Python, Rust, Java, and TypeScript are supported across nearly all of them.
Best Way to Get Started with CodeCrafters
If you're curious, here's the path I'd suggest:
Start with the Shell challenge—it's the most popular for good reason. You already know what a shell does, so the learning curve is about how it does it, not what it does.
Then try Redis — this is the flagship challenge and probably the most rewarding. 97 stages means you'll go deep. By the end, you'll have a working Redis server that handles real Redis client connections.
Pick your stretch challenge — Kafka if you want distributed systems. The Interpreter if you're interested in language design. SQLite if storage engines fascinate you.
Frequently Asked Questions
Is CodeCrafters free?
CodeCrafters offers a free trial so you can experience the workflow before committing. Full access to all challenges requires a paid membership. If your company offers a learning budget, CodeCrafters provides an expense page to help you get it reimbursed.
What programming languages does CodeCrafters support?
Over 20 languages, including Go, Python, Rust, Java, JavaScript, TypeScript, C, C++, C#, Kotlin, Haskell, Ruby, Scala, Elixir, and more. Not every language is available for every challenge, but core languages have broad support.
Is CodeCrafters good for interview preparation?
Yes — specifically for system design interviews. Building Redis, Kafka, or SQLite from scratch gives you first-hand experience with the architecture decisions interviewers ask about. For algorithm-focused coding rounds, LeetCode is still the better fit. The two are complementary.
How long does a CodeCrafters challenge take?
It depends on the challenge and your experience. Smaller challenges like Git (7 stages) can be completed in a weekend. Larger ones like Redis (97 stages) or the Interpreter (84 stages) can take several weeks of part-time effort.
Can I use CodeCrafters to learn a new programming language?
Absolutely — this is one of its strongest use cases. Instead of building yet another TODO app, you build real systems that exercise the language's strengths. Many engineers use it specifically to learn Rust, Go, or Kotlin through practical projects.
Is CodeCrafters better than LeetCode?
They solve different problems. LeetCode trains algorithmic thinking for coding interviews. CodeCrafters trains systems thinking for design interviews and real-world engineering. Most senior engineers benefit from both.
Final Verdict — Is CodeCrafters Worth It?
If you're a mid-to-senior engineer who wants to understand systems at the depth that separates good engineers from great ones, CodeCrafters is one of the best investments you can make.
It won't teach you how to pass a LeetCode hard — it'll teach you how to build the systems that LeetCode problems are abstractions of.
👉 Start a challenge on CodeCrafters
Full disclosure: The link above is my referral link. If you sign up through it, I may receive a small benefit—but I'm recommending it because I genuinely believe it's worth your time. I don't promote tools I wouldn't use myself.
Happy building. 🛠️