Trial of Code is a series of test-driven small coding puzzles that lead to complex, advanced software projects.
You level up by writing a little code for each puzzle, making incremental progress and completing hardcore projects!
There are many beginner tutorials, and there are many advanced software development activities, but not many resources in between. I started this project to help people bridge that gap.
How can I participate?
- Download the starter code & test cases.
- Read the description of each puzzle.
- Code the missing functions & run tests.
- Move to the next step.
Each project comes with a book containing detailed explanations and background info that you can use to aid your journey, dive deeper, or learn the subject without committing to the full project. You can buy the book to fund the author.
Trial of code 2025: Code a database from scratch in Go!
Our first-year project is to code a database from scratch (no dependencies). We’ll cover ALL major aspects of databases, including KV storage engines, LSM-Tree indexes, SQL, concurrent transactions, ACID, etc.
This sounds complicated, but software dev often evolves dealing with complexities, a skill not learned from tutorial-ish code or simple CRUD jobs.
Trial of code 2026Q1: Code a Redis server!
If you can build Redis, you can build anything! Redis is the perfect medium for studying both software engineering and computer science, covering computer network, data structures, and Linux API in a semi-realistic production setting.
Work in progress. Subscribe to get updates.
Trial of code 2026Q2: Code a XYZ?
Want to learn something? Share your ideas with me via this form.
FAQs
FAQ: How big are these projects?
- Each project is fewer than 50 puzzles.
- Most puzzles are fewer than 50 lines.
- The end result is fewer than 3000 lines.
A puzzle a day, and you’ll be amazed by your own accomplishments.
FAQ: This is hard, right?
The learning curve is shallow because the projects are divided into tiny puzzles that are guided by test cases. I have reports of beginner completing. And even a partially completed project is still impressive, which can make you stand out in the job market.
FAQ: What language is used?
You are not limited by the language used in the puzzle. In fact, translating code and tests is a great way to learn new languages.
Puzzles in different languages will be added if there are big demands. Also, check out CodeCrafters.io which offers similar courses in many languages.
FAQ: Do I need a computer science background?
No. Puzzles are solvable with moderate problem-solving skills w/o requiring tons of theoretical prerequisites. However, CS knowledge can be helpful, which you can pick up alone the way.
FAQ: I’m stuck. Help!
- Read the test cases to gain insights.
- Use the reference answer. Don’t feel bad; you’ll still learn.
- Discuss with the author here. I’m happy to hear from you.
- Use the accompanying book with detailed explanations and background info.