Hi this is John with this week’s Coding Challenge.
🙏 Thank you for being one of the 73,659 software developers who have subscribed, I’m honoured to have you as a reader. 🎉
If there is a Coding Challenge you’d like to see, please let me know by replying to this email📧
New Year Sale Now On!
During the New Year sale you can get 30% off all Coding Challenges courses for paid subscribers to Coding Challenges. Check out the paid subscriber benefits page for the coupon code!
If you’re not a paid subscriber you can get 50% off a 12 month subscription as part of the New Year sale too! CLICK HERE to claim it!
Or if you’re not a paid subscriber you can still get 15% off all the courses using the code NEWYEAR2025 at the checkout:
Build Your Own Redis Server (Go Edition) PRESALE - To be released 13th Jan 2025
Recapping The Highlights Of Coding Challenges 2024
2024 Saw 38 new coding challenges added, kicking the year off with building your own Tetris!
2024 also saw the start of the new “From The Challenges” series in which I share some of the common mistakes I see software engineers make when tackling the Coding Challenges.
We ended 2024 with the build your own Optical Character Recognition tool a machine vision/ML/AI focused coding challenge.
Looking forward to 2025, I plan to add coding challenges that include:
Build a Database - probably SQLite.
Build an Interpreter - for a new programming language I’m designing specifically for Coding Challenges!
Build a BitTorrent Peer - we’ve had network clients and servers, now it’s time for the most famous peer-to-peer protocol.
Build a Compiler - this will follow on from building an interpreter, creating a compiler and VM for the new programming language.
Build a Blockchain - there’s some fun technology under all the hype.
Build Your Own Kafka - it’s asked for so often, it’s time to do it.
And many others! I’m always open to suggestions too - hit reply and let me know your ideas!
The Five Top Coding Challenges
I’ve pulled together this list of the five top coding challenges of 2024. They’re the ones I’ve most enjoyed and/or that have been popular.
Coding Challenge 1 - Docker
The build your own Docker coding challenge sees you build an application to pull a container image from Docker Hub, unpack and run it in our own container runtime. This was one of my personal favourite coding challenges. Putting it together and building my own solution taught me so much about how Docker, Kubernetes and containers work.
Coding Challenge 2 - Bloom Filter
The build your own Bloom filter based spelling checker coding challenge sees you build your own micro spell checker. The goal is to create a spell checker that can determine if a word is probably spelt correctly without having to store the full list of words. Thus the spell checker can use less storage (disk or memory). A task that is much less relevant these days, but 20 years ago was incredibly useful on low storage devices.
Whilst we don’t have this problem with spell checking today, we do have similar problems checking if an item is in a data set that would be too big to store efficiently. There’s been an interest post recently on Hacker News about how Bloom filters made SQLite 10x faster - this is a data-structure that is well worth understanding!
Coding Challenge 3 - Chess
The build your own Chess coding challenge sees you build a chess game. It’s a challenge you could do with a web-based UI, a desktop or mobile UI or even a terminal based UI. As always with Chess you quickly learn that what looks like a simple game is incredibly complex!
Coding Challenge 4 - Text Editor
The build your own text editor coding challenge sees you build your own terminal based text editor - think of it as a mini version of Vim, Ed or Nano.
There’s been a resurgence in interest in terminal-based text editors recently as software engineers adopt them over IDEs. This is reflected in the development and interest in new alternatives to existing editors, i.e. Neovim. Building your own is a great exercise and will have you appreciate the power of your favourite editor.
Coding Challenge 5 - Password Cracker
The build your own password cracker coding challenge sees you build your own version of John the Ripper or CrackStation. These are password cracking tools that can be used to recover passwords, by penetration testers and of course bad guys.
If you’re building software that uses passwords you should take this coding challenge and learn how vulnerable they are and start to understand what you can do to make them more secure. Plus you’ll learn about cryptographic and non-cryptographic hash functions.
Thanks And Best Wishes For 2025!
As 2024 comes to an end I’m celebrating another year of helping software engineers level up by building real-world programming projects.
I’m writing these coding challenges to help you develop your skills as a software engineer based on how I’ve approached my own personal learning and development.
What works for me, might not be the best way for you - so if you have suggestions for how I can make these challenges more useful to you and others, please get in touch and let me know. All feedback is greatly appreciated.
You can reach me on Bluesky, Twitter, LinkedIn or through SubStack
Thanks, happy coding and happy new year!
John
P.S. If You Enjoy Coding Challenges Here Are Four Ways You Can Help Support It
Refer a friend or colleague to the newsletter. 🙏
Sign up for a paid subscription - think of it as buying me a coffee ☕️ twice a month, with the bonus that you also get 20% off any of my courses.
Buy one of my courses that walk you through a Coding Challenge.
Subscribe to the Coding Challenges YouTube channel!