Learn by building real software from scratch. No magic, no frameworks—just pure engineering.
CodeZen is a hands-on learning platform where you build real software tools from first principles. Inspired by CodeCrafters, we take you on a journey from int main() to a production-ready application—teaching you the underlying systems, protocols, and patterns that power modern software.
- No black boxes: Understand every line of code you write
- Incremental complexity: Start simple, add features step-by-step
- Real-world relevance: Build tools you'd actually use
- Community-driven: Learn together, share solutions
Learn networking, HTTP protocol, concurrency, and system design by building a production-ready HTTP server from scratch.
What you'll build:
- ✅ TCP socket server
- ✅ HTTP/1.1 parser
- ✅ Static file serving
- ✅ Routing & middleware
- ✅ Concurrent request handling
- ✅ Graceful shutdown
- ✅ Configuration management
- ✅ Logging & metrics
Skills gained:
- Go concurrency patterns (goroutines, channels)
- Network programming
- HTTP protocol internals
- System design & architecture
- Testing & benchmarking
Estimated time: 8-12 hours (self-paced)
- Go 1.21+ (install)
- Basic understanding of Go syntax
- Curiosity and persistence!
# Clone the repository
git clone https://github.com/BASILAHAMED/codezen-io.git
cd codezen-io
# Start with the first step
cd projects/01-http-server/step-01-tcp-server
cat README.mdEach project is broken into small, manageable steps:
- Read the step description - Understand what you need to build
- Write the code - Implement the functionality yourself
- Run tests - Verify your implementation
- Check the solution - Compare with reference implementation
- Move to next step - Build complexity incrementally
projects/01-http-server/
├── step-01-tcp-server/
│ ├── README.md # Step instructions
│ ├── starter-code/ # Minimal code to start
│ ├── tests/ # Test suite
│ └── solution/ # Reference implementation (hidden until you're ready)
├── step-02-http-parser/
├── step-03-static-files/
└── ...
We welcome contributions! Whether you want to:
- Add new projects/tracks
- Improve existing content
- Fix bugs or improve tests
- Translate content
- Share your CodeZen journey
Please see CONTRIBUTING.md for guidelines.
MIT © Basil Ahamed and contributors
Inspired by CodeCrafters and the incredible educators who believe in learning by doing.
Star this repo if CodeZen helps you learn! ⭐
Made with ❤️ by the CodeZen community