Find your next challenge.
Choose a project that sparks your curiosity. Filter by difficulty, category, or a skill you want to practice.
Browse the libraryLearn by making something real
Get out of the tutorial loop. Build real tools, explore new ideas, and become the developer you want to be.
Free to explore. No account. Just you and your editor.
Start small. Understand every piece.
$ git init
A good place to start.
$
There’s a starting point for everyone
Pick a comfortable start. You can always turn up the difficulty.
Practice the fundamentals with a focused tool you can build and test locally.
Browse beginner challengesIntermediateWork with protocols, parsers, and data structures in a more involved project.
Browse intermediate challengesAdvancedTake on deeper systems problems and make your own implementation decisions.
Browse advanced challengesNot sure yet? Start with a word counter — a small command-line tool with a clear finish line.
A few places to begin
Read files, handle input, and recreate a tool you can use every day.
File I/O · Text processing Read the challenge briefTurn raw text into structured data and understand what happens behind JSON.parse.
Parsing · Data structures Read the challenge briefExplore how an in-memory data store handles commands and serves clients.
Databases · Networking Read the challenge briefThe best way to learn is to build
No endless playlist. No perfect setup. Just a clear starting point and room to figure things out.
Choose a project that sparks your curiosity. Filter by difficulty, category, or a skill you want to practice.
Browse the libraryStart with a clear brief. Pick your language, open your editor, and turn the requirements into working software.
Plan your first buildCompare with a reference solution when one is available. Understand the trade-offs, then make your version better.
How to use solutionsBuild something that stays with you
Get closer to the command line. Learn how small utilities turn input into something useful.
Browse command-line projectsUnderstand the pieces behind the interfaces you use, one implementation at a time.
Browse systems projectsConnect data, behavior, and an interface. Make something you can use and share.
Browse web projectsYour next project is waiting