Revisiting Pong, New Subscriber Benefits and YouTube Updates
Exploring the software engineering lessons we can learn from the solutions I've seen.
Hi this is John with this week’s Coding Challenge.
🙏 Thank you for being one of the 91,658 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📧
🚨 NEWS: I’m Starting A Monthly Live AMA For Paid Subscribers
I’m starting a monthly live AMA (Ask Me Anything) for paid subscribers.
Every month you’ll have the chance to join an hour long Zoom call during which paid subscribers can:
Ask me anything! For example, about:
The Coding Challenges.
Programming languages.
Learning to code.
System design.
About interviewing.
Software engineering careers.
Submit your code for review.
Suggest future coding challenges.
Network with other paid subscribers.
The first AMA will happen on Friday 28th November 17:00 to 18:00 GMT. You’ll get the link sent to you by email and through the paid subscriber chat on Substack.
Can’t make it live? Submit your questions through the paid subscriber chat and as a paid subscriber you’ll get access to the recordings.
If you’re not yet a paid member, this is the perfect time to join. Paid subscribers also get discounts off all my courses.
I look forward to talking to you in the AMA!
🚨 NEWS: More Videos Added To The Coding Challenges YouTube Channel!
I’m continuing to add new videos to the Coding Challenges YouTube Channel, if you’re interested please consider subscribing. If you have suggestions for content, please hit reply / send me a message with them.
You can find a video version of this From The Challenges newsletter on it as Coding Challenges - From The Challenges: Pong.
Welcome To Coding Challenges - From The Challenges!
In this Coding Challenges “from the challenges” newsletter I’m sharing some of the common mistakes I see software engineers make when tackling the Coding Challenges.
I’m sharing both the mistakes people make and some thoughts on how you can you avoid making the same mistakes when taking on the coding challenges or when writing software professionally. Sometimes we have to make mistakes to learn from them, somethings we can learn from other people’s mistakes, then make our own new ones! 😀
Recapping The Pong Coding Challenge
In the build your own Pong coding challenge the goal was to implement your own version of the classic arcade game Pong.
If somehow you’ve never heard of Pong - where have you been - it is a table tennis-themed game that was released by Atari in 1972. It was the first commercially successful computer game resulting in the computer gaming industry.
It has very simple graphics, as you’d expect of a computer game from that period. Each player controls a paddle and there is a ball that bounces across the screen between the players. If a player misses the ball, a point is scored against them.
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 ☕️, with the bonus that you get access to a monthly AMA and 20% off any of my courses.
Buy one of my self-paced courses that walk you through a Coding Challenge.
Join one of my live courses where I personally teach you Go by building five of the coding challenges or systems software development by building a Redis clone.
Five Common Mistakes Software Engineers Make Solving The Pong Coding Challenge
I’ve pulled together this list of common mistakes from the hundreds of submissions I’ve been sent privately and the many shared in the Coding Challenges Shared Solutions GitHub Repo.
Mistake 1 - Lack Of Comments
It’s surprising easy to get code commenting wrong. Firstly, too many comments often results in useless noise:
// Increment i
i++Secondly, some developers write so many comments that over the lifetime of a project, as the code changes, but the comments aren’t updated or remove, many of them end up out of date and become confusing.
Thirdly, the comments, like above explain what the code does, which should be obvious from the code, instead of explaining why it does it, which is often not obvious.
Then there’s the case where there are no comments at all. Sure, in an ideal codebase the code is so clear there are no need for comments. In reality that’s rare. I saw a few solutions to this coding challenge that had no comments and code for which it wasn’t immediately clear why it existed.
So please, write some comments for your code when what the code does and why isn’t immediately obvious. As a bonus if you’re moving into the realms of AI-assisted software engineering they can also help AI.
Mistake 2 - Not Deploying It
The majority of the solutions to the Pong programming project that I saw were web-based, but they weren’t deployed anywhere.
That’s a shame. Looking at code in a Github repo is one thing, but being able to click a link from the readme and see it deployed makes it so much more impressive, particularly for those of you who are looking for a role and are early in your careers.
It doesn’t have to be complex or expensive either, look into the offers provided by Github pages, Vercel or Cloudflare for example.
Mistake 3 - Testing
I tried a few and found bugs. Whether you’re building the projects on Coding Challenges to learn or to build up your portfolio they’re not helping you achieve your goal if they are buggy. Test your code.
Mistake 4 - README Missing Setup Instructions
Your README is the place to tell someone all about your project, what it is, what it does and most importantly how to use it.
If it’s meant to be used by other developers (which it probably is) then that also includes how to build and test it.
Even if you don’t expect to a huge audience for it, at least consider the one person who is most important in your life, you! You see at some point in the future you might come back to the repo and wonder how to use it.
So make sure the instructions are complete.
Shoutout 1 - Deploying C++ To The Web With WASM!
One of the first professional software development projects I worked on was writing code for the web in C. It was great to see how modern tooling allows software engineers to bring languages like C and C++ to the frontend. It’s a testament to the success of WASM that it’s now widely supported across browsers and compilers.
Checkout https://github.com/buckfullingham/cc.fyi.pong to see this in action.
Request for Feedback
I’m writing these coding challenges and this new from the challenges series 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 greatly appreciated.
You can reach me on Bluesky, LinkedIn or through SubStack
Thanks and happy coding!
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!


The point about deploying projects really resonats with me. I've seen so many impressive GitHub repos that would make much stronger portfolio pieces if they had live demos. The WASM example with C++ is particularly intresting, showing how modern tools let us bring perforamnce-critical code to the browser while keeping familiar languages.