On Thursday, 24 February, we ran the online Qualification Round for the 9th edition of Hash Code – the team-based coding competition organized by Google. I’m a Software Engineering Manager @ Google France, and as a volunteer I helped to organize the event. In this post I share personal thoughts on the competition.
Not a regular day
On the morning of the Qualification Round, we woke up to the terrifying news of the ongoing invasion in Ukraine. The crisis inevitably affects, directly or indirectly, many Hash Code participants and contributors. It’s heartbreaking to see. My thoughts are with everyone suffering due to the war, including the community of Hash Code participants and hub organizers in 🇺🇦 Ukraine.
As hard as it was to stay focused on this day, it was our role to run the best Hash Code round we could. Events such as Hash Code bring together thousands of people from around the world for a friendly coding challenge – I believe it’s important to keep it up even when, or especially when, the events in the world are terrifying.
Unified competition system
This Qualification Round was the first one to run entirely within the Coding Competitions website , which also runs the other two flagship coding events by Google: Code Jam and Kick Start.
The new competition system has a few advantages: most importantly, it offers a more integrated experience for the participants, who no longer need to switch between two websites (one for registration and another to compete).
Internally, the unified system reduces duplicate work: the Coding Competitions infrastructure has a small but excellent team of engineers dedicated to developing the system. Meanwhile, the Hash Code volunteers can work less on developing custom infrastructure, and more on preparing the competition problems and improving the competition experience.
This marks the end of our previous-generation Judge System, built for the 2016 edition by engineering volunteers. It has served us well, allowing Hash Code to scale from 1538 contestants in 2015 all the way to 128 410 participants in 2021. I will remember it warmly. By early 2022 this system was around 27 000 lines of code (including both the server side and the client side), which we were able to delete this week.
Competition problem: mentorship and teamwork
The competition problem for the round was about teamwork and project planning: given a description of contributors with different skills, and projects with roles requiring specific skills, assign contributors to roles so that projects are successful.
To make things more interesting, contributors can mentor each other, allowing a colleague to succeed in a role they wouldn’t otherwise be able to take on. Contributors also learn from experience and improve their skills by finishing difficult projects.
This problem idea is rooted in the everyday realities of software engineering work: for teams to succeed they need the right combination of different skills; good teams have strong support for junior contributors (mentoring); and the best way to learn is to work on something on the edge of our capabilities.
A few tweets from the round:
#hashcode by Google pic.twitter.com/td7CnKcKCB— Alessio Romaniello (@AlessioR101) February 25, 2022
I got a score of around 12k in the qualification round of #HashCode 🙈— C;L (@_CodeLife_) February 24, 2022
I had the best time! The problem was quite deep, I'm gonna need all week to recover 😆
I'll try to optimize it and make a video about it
Wish me even more luck 🤞
Waiting for the scores #HashCode Hungary, Budapest, BME Hub pic.twitter.com/0ps4BCKesR— GDG Budapest (@GDGBud) February 24, 2022
Make love, not war
After the submission closed we unfroze the scoreboard and announced the winners. The top three teams were:
- 🇷🇺 Make love, not war
- 🇵🇱 Rethinkers
- 🇧🇾 🇷🇺 🇺🇦 Past glory
Congratulations to the team "Make love, not war" from Russia for winning the #HashCode 2022 Qualification Round! 🏆— Przemek Pietrzkiewicz (@przem8k) February 24, 2022
Today was not a regular day and I know it was hard for many of us to stay focused on the competition. Thank you everyone for being part of Hash Code ❤.
If you participated in the round, consider sharing your thoughts (and competition solution?) on your preferred social media. If you’d like to read more about the competition, check out the retrospective . Thank you for being part of Hash Code ❤️!
Next step for this edition: 🏆 World Finals on April 30.