Rebuild your own version of complex products

Published on Sunday, December 10th, 2023

🇫🇷 Article disponible en français


CodeCrafters is a platform that enable developers to rebuild famoux tech products like a DNS Server or Docker. Let me tell you how it went for me.

Well, I have to admit that I feel excited: CodeCrafters is my first “real” partnership as a streamer. But, being a person who is built differently, I make it a point to only associate myself with projects and concepts that I find cool, and that I could personally use. CodeCrafters is that kind of product. It’s simple, it’s cool, and it STIMULATES me. Here’s my experience with this code challenge platform!

A code challenge platform?

CodeWars. CodeInGames. LeetCode. HackerRank. Maybe you’ve heard of them. If you haven’t, these are websites that allow developers to practice their craft. The topics covered go from simple algorithmic subjects to solving complex problems. Some people use them out of curiosity, while others see these platforms as a way to prove how incredible they are as developers.

From codecrafters landing page:
Practice Writing Complex Software. Recreate Redis, Git, Docker — with your own
hands. Gain expert-level confidence by taking action and diving deep, learning
from the world's best.

CodeCrafters adds to these many platforms with a curious specificity: you will practice on real products; and you will challenge yourself with missions like Build your own <something>. By real products, I mean things like:

Available challenges screenshot:
BitTorrent, Redis, HTTP server, DNS server, Grep, Docker, Git, SQLite

Yeah, it’s really intimidating. Right now, I have no freaking idea how products like Docker can work internally, and it’s obvious that rebuilding this thing from scratch would be impossible for me.

To make the experience enjoyable, CodeCrafters will shine through its iterative approach: your challenge will be divided into much more manageable sub-challenges.

Sub goal details: Introduction,
Repository setup, Decode bencoded strings - integers - lists - objects, Parse
torrent files, Calculate info hash, Piece hashes, Peer handshake, Download a
piece, Download the whole file.

You will also have the opportunity to test your code at each step, to make sure you are going in the right direction.

The experience is SUPER enjoyable: there is a Discord server for support (that’s cool to have that, because we never know!) and the maintainers regularly add new challenges!

My own usage

I started with the Redis challenge in Elixir and my first attempt ended in failure, my first L ever.

Error 503 when I first tried the platform

It’s NOT to my skill issues, the platform was down for a few minutes. These are things that happen, how many of us have already killed a production server, huh?

I gave a second chance by attempting another challenge, the Build your own BitTorrent client. I know the software, I don’t know about the protocol, but I was able to learn a lot by completing the challenge. Here is what I took away from it:

As you can see, the impact on my IT culture is really positive, perfect for shining in society (if the society in question was filled with geeks, which is far from the truth).

At the time of writing, I am at stage 9 of the challenge and have invested approximately 8 hours so far. I really love the concept and I think I will do more on Twitch using different programming languages!

Sponsoring

Well, you got it, I am a CodeCrafters partner. If the article made you want to try the platform, I’ll give you two things:

Thank you for reading and have fun!