Our Goal

Make engineers solve real problems by building from scratch.

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.

I think it's important to reason from first principles rather than by analogy. The normal way we conduct our lives is we reason by analogy. We are doing this because it's like something else that was done, or it is like what other people are doing. First principles is kind of a physics way of looking at the world — you boil things down to the most fundamental truths and then reason up from there. — Elon Musk

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.

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

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 best way to predict the future is to invent it. — Alan Kay

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.

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