Changelog

A summary of changes that happened in CodeCrafters recently.
3 weeks ago
Redis stage instructions update
improvement

The Redis challenge’s instuctions for “SET & GET” have been updated to explicitly state that no extra options have to be implemented, and that expiry is handled in the next stage.

Thanks to GarrickHe and captn3m0 for suggesting this change.

6 months ago
Selected for Tyk's Side Project Fund!
announcement

🚀 CodeCrafters has been selected for Tyk’s Side Project Fund! More new on this here.

The funding amount will help pay for ~6 months of server hosting.

A detailed interview on this will be published soon.

7 months ago
Support for Go in the Git challenge
new

The Git challenge now supports Go (in addition to Ruby & Python)

7 months ago
Better hints for the Docker challenge
improvement

Based on feedback from early access users, the hints for the Docker challenge have been updated.

  • The base URL for Docker Hub’s public registry API is surprisingly hard to find, it isn’t mentioned in any official documentation. This is now included in the hints for the last stage.

  • A hint to use docker-explorer’s commands like echo & echo_stderr was placed in the “Exit Codes” stage instead of “Wireup stdout & stderr”. It is now back where it belongs.

  • Added a note that Official images need to be prepended with library/ when interacting with the registry API.

Thanks to na-null, GarrickHe, codaitya, ayyjohn, JonasAgger, jolheiser and abhijat for their feedback on this!

7 months ago
Support for C & Ruby
new

The Redis challenge now supports C & Ruby (in addition to Python, Go & PHP)

The Docker challenge now supports C (in addition to Nim & Go)

8 months ago
Profile pages are in!
new

If you’ve completed one or more challenges, you now have a swanky new profile page!

Example:

Visit https://codecrafters.io/users/<your_github_username> to see yours.

Unlike early access trials, the data stored here is persistent. For now, activity is synced once a day. This’ll be more real-time in the future.

8 months ago
Early Access #6: Redis
announcement

The third early access trial for Build your own Redis has ended.

Players:

8 months ago
Language-specific hints
new

In some challenges, depending on the language you’re using, you might receive language-specific hints.

The language you attempt a challenge in a huge part of the experience. There are often quirks to watch out for. Some have a better standard library than others. Hopefully this’ll make the experience a bit more delightful, especially if you’re new to a language!

8 months ago
Tweaks to first 3 Redis challenges levels
improvement

Based on feedback from early access users, we’ve tweaked the first 3 Redis challenge levels to be a bit easier and follow a more natural progression.

9 months ago
Early Access #5: Docker
announcement

The third early access trial for Build your own Docker has started.

Players:

9 months ago
Challenge #3: Build your own Git
new

Our third challenge will be Build your own Git.

In this challenge, you’ll build a toy Git implementation that can clone a public repository, commit changes and push them back to a git server. Along the way, you’ll learn about the .git directory, a few of Git’s “plumbing” commands, Git objects (blobs, commits, trees etc.), Git transfer protocols and more.

Early access trials will start for this challenge will start soon.

9 months ago
Links now open in a new tab
improvement

On the course page, all links inside instructions for a stage open in a new tab instead of the the same one.

Thanks to @davidjameshowell for suggesting this change.

9 months ago
Initial empty commit is marked as success
improvement

The first commit that one pushes in a challenge is an empty commit to activate the first stage. The discord bot no longer harshly advertises this commit as “☠ attempt failed ☠”.

Thanks to @davidjameshowell & @PurHur for pointing this out!

9 months ago
Early Access #4: Redis
announcement
9 months ago
Early Access #3: Docker
announcement

The second early access trial for Build your own Docker has started.

Players:

9 months ago
Early Access #2: Docker
announcement

The first early access trial for Build your own Docker has started.

Players:

Update: Both players have completed the challenge!

9 months ago
Stages now advance automagically
improvement

Earlier, users advanced from one stage to the next by manually updating the current_stage value in codecrafters.yml and pushing a commit.

This is no longer required, the test runner & UI both automatically figure out which stage you’re attempting and act accordingly.

Thanks to @HimaniJoshi for suggesting this flow!

Time to breeze through ‘dem stages! 💨 🚀

9 months ago
Challenge #2: Build your own Docker
new

Our second challenge on offer will be Build your own Docker.

In this challenge, you’ll build a toy Docker implementation that can pull an image from Docker Hub and execute commands in it. Along the way, you’ll learn about chroot, kernel namespaces, the docker registry API and more.

Early access trials will start for this challenge will start soon.

9 months ago
Redis: Better signal handling
improvement

In the Redis challenge, we weren’t properly forwarding signals to the child process when it was being terminated. This resulted in multiple versions of the same program running, which caused failures to bind to a port for subsequent runs of the program.

This has now been fixed. Thanks to @Gufran for pointing this out!

9 months ago
Early Access #1: Redis
announcement

The first early access trial for Build your own Redis has started.

Players:

Update: @Gufran was the first to complete all stages, and managed to do so in under 2 hours!

10 months ago
Early access is now live
new

CodeCrafters is under heavy development, but the core course experience is now ready to try out. The first course on offer will be Build Your Own Redis.

Head over to early access to signup! We’ll invite you to our Discord server, where we co-ordinate early access trials.

10 months ago
Challenge #1: Build your own Redis
new

Announcing our first challenge: Build Your Own Redis.

In this challenge, you’ll build an application that can speak the Redis protocol, and is capable of serving basic commands like PING, ECHO, SET and GET. Along the way, you’ll learn about TCP servers, event loops and more.

We’ll launch an early access program soon so that you can try this out.