Become a Cracked engineer

$|

Go beyond tutorials. Tackle real‑world projects and develop the raw technical intuition that sets the top 1% apart.

Pick your challenge

Each project teaches you how real-world software actually works under the hood.

Three commands. That's the whole workflow.

No config files. No Docker. No browser IDE. Just our CLI.

terminal

# register your hash and pick a challenge

$ bwg init a1b2c3d4

Verified! Welcome, user.

$ bwg list

Cloning into 'build-your-own-redis'... done.

# write your solution — any language, any editor

$ vim server.c

# submit to run tests

$ bwg submit -m "add PING and ECHO"

✓ Stage 1 passed — PING/PONG

✓ Stage 2 passed — ECHO

✗ Stage 3 failed — GET/SET

hint: check your key-value store expiry logic

Why developers choose us

Not another tutorial. Not another video course.

Build real systems

Redis, Git, compilers — not toy apps.

Automated testing

Every submission runs your code against real test suites.

Your own editor

No sandbox. Use VS Code, Neovim, whatever you want.

Ship-ready skills

Understand internals that senior engineers know.

10+ Challenges
200+ Stages
100+ Quizzes
Docs To get started

Our philosophy

Our Goal

Make engineers solve real problems by building from scratch.

“What I cannot create, I do not understand.”
— Richard Feynman

First principles engineering

Most developers use tools without understanding how they work. They use Git without knowing how objects are stored. They query databases without understanding B-trees. They call APIs without knowing how HTTP actually works under the hood.

BuildWithGit exists to change that. When you build Git from scratch, you stop memorizing commands and start understanding the system. When you build a database, indexing stops being magic and becomes a design decision you can reason about.

Real problems, not toy exercises

Sorting algorithms and linked list puzzles have their place, but they don't teach you how to build software. Real engineering is about systems — how pieces fit together, where things break, why certain tradeoffs exist.

Our challenges are real systems: Git, Redis, HTTP servers, compilers, DNS servers, SQL databases, LLMs. These are the things that power the internet. Building them teaches you more than any textbook.

Understanding over memorization

When you truly understand how something works, you can debug it, extend it, and build on top of it with confidence. You stop copying Stack Overflow answers and start writing solutions that fit your specific problem.

That's the difference between someone who uses a framework and someone who can build one. Both are valid — but the person who can build one will always make better decisions about when and how to use one.

The engineer we want to build

Someone who sees a system and thinks "I could build that." Someone who doesn't panic when the abstraction leaks because they know what's underneath. Someone who picks the right tool because they understand the tradeoffs, not because it's trending.

That's the kind of engineer the industry needs. That's who BuildWithGit is for.

“The best way to predict the future is to invent it.”
— Alan Kay
“Everybody in this country should learn to program a computer, because it teaches you how to think.”
— Steve Jobs
“Simplicity is the ultimate sophistication.”
— Leonardo da Vinci

Ready to build something real?

Start with any free challenge. No credit card. No setup.