
Hash Code was a team programming competition by Google that ran from 2014 to 2023.
I co-created this event at Google France and led the volunteer engineering team that ran and developed the competition over nine annual editions. In 2023, Hash Code was sunset along with the rest of Google’s Coding Competitions program.
Organizing Hash Code and watching it grow from 200 local participants to over 128,000 global contestants was as instructive as it was fun! This post is an attempt to capture some of the fun history of Hash Code as I remember it.
What was Hash Code?
Hash Code was a team programming competition with problems inspired by actual challenges faced by Software Engineers at Google. The very first Hash Code problem was optimizing the routes of Street View cars capturing imagery of a city, something that my colleagues at Google France were indeed working on at the time.
The KU Leuven #hashcode hub is ready to participate with a full house tonight! Good luck to all teams! #kuleuven #hype pic.twitter.com/avVYxZ8nfC
— Thomas De Backer (@mosterdt) March 1, 2018
What made Hash Code special was the community-building experience it provided:
- Teams: Contestants worked in teams of two to four people, practicing collaboration and teamwork.
- Hubs: Teams gathered in self-organized local meetups, typically run at universities or developer groups, giving people an opportunity to make in-person connections.
- Global unity: Everyone worked on the same problem at the same time during one big online round each year, making each edition a big worldwide event.
Quick pizza break and back to hacking @Andela_Kenya @Andela #hashcode2016 pic.twitter.com/LZpnzQRqnK
— Anthony Nandaa (@ProfNandaa) February 11, 2016
Why Hash Code?

Back in 2013, the engineering team at Google Paris was new, relatively small, and growing fast. As newcomers, we felt we could benefit from more outreach, including building more connections with French students and universities. And what do you do when you want to build connections with someone? Obviously, you invite them over for a pizza-and-coding session!
In a brainstorming session, we agreed on three pillars that ended up guiding Hash Code through all of its history:
- Accessible at all levels: We made problems open-ended, so it was easy to develop a naive solution first and iterate from there. This made the competition accessible to participants at all levels, not just algorithm experts.
- Reasonably realistic: We made it a team event because engineers usually work in teams.
- Scrappy: Hash Code started as a side-project for a few engineers, so we couldn’t build anything too fancy in terms of the competition system.
The competition history
Hash Code 2014: the first edition
Registered participants: 200 (France-only)
After deciding on the competition formula, we set up a website and sent invitations to local universities. The first paragraph read:
Google Paris is excited to organize Hash Code, a programming competition where you will tackle a real-life challenge created by Google engineers. Using the programming language(s) and tools of your choice, your task is to develop an original solution to the problem using your coding and algorithmic skills. You will work in teams of two to four members and winning teams will be awarded cool Google prizes.
The Hash Code website, 2014
At the time one of the engineering teams at Google Paris was working on optimizing routes of Street View cars taking imagery of a city. We took this idea and adapted it into Hash Code first competition problem .

Street View routing from Hash Code 2014
The event was a two-day affair: Friday afternoon introduction and practice round, Saturday for the main competition. The practice round was invaluable: teams could test their setup and teamwork, while we verified the infrastructure (e.g. electricity supply in the room, not just the scoring system).

Hash Code 2014 in the Google France canteen
Things went well. I remember the focused silence of the canteen in which 200 students worked on solving the car routing problem. In one of the more playful solutions, the Street View cars were scheduled to drive routes that resembled the word “Google” when viewed from above.
This type of playfulness later became a bit less frequent during Hash Code onsite finals, as the competition expanded its reach and became more competitive.

The author at Hash Code 2014
Our one major issue: pizza shortage. We took the office food team’s guidance and multiplied by two for student appetites. This turned out to not be enough!
Hash Code 2015: technical issues
Registered participants: 1,538 (France, Luxembourg, Belgium, Switzerland)
The main limitation of the first edition was physical space. At 200 participants, our canteen at Google Paris was packed. We wanted everyone interested to be able to participate, while preserving the local feel of the event.
Our solution: Hash Code “hubs.” We invited universities and developer groups across France to organize Hash Code events of their own at their own location (and with their own pizza). We provided the competition problem and the online scoring system (including a per-hub scoreboard), to help create an engaging local experience. The best scoring teams in the Qualification Round were to be invited for the Final Round at Google Paris.
For the Qualification Round, you can participate from anywhere using your own computer and Internet connection. However, in order to make the qualification round more exciting, universities, engineering schools and individuals can organize hubs to gather participants.
(The Hash Code website)
In a sense, this formula worked out too well. Our ad-hoc scoring system created a year earlier had scalability limitations that we didn’t fully understand before the event. These limitations became apparent when ~1500 contestants attempted to submit solutions at the same time:

Server logs of the overloaded scoring system.
Ironically, the competition problem for the round was about data center reliability.
The evening was saved by a Google Form. Contestants could continue submitting solutions while we spent the next day feeding those submissions back to the scoring system to calculate results.

Emergency backup submission form.
While the evening of the competition was very tense because of the breakage, we were reassured by the feedback from the participants and hub organizers – despite the glitch, people had a good time! On our side, we firmly resolved to be better prepared for the next year.
At least the onsite Final Round worked out well, featuring a fun problem about coordinating Loon balloons .
It was a lot of fun and balloons #HashCode2015 pic.twitter.com/Hl0Yxd8zJy
— Cecile (@CecileHbh) March 30, 2015
Hash Code 2016: scaling up
Registered participants: 17,307 (EMEA)
For Hash Code 2016, we wanted to expand the competition geographically, for the first time inviting participants from most of the EMEA (Europe, the Middle East and Africa) region. With the technical issues of 2015 fresh in mind, we knew that we needed a bigger boat—that is, a scoring system that could scale.
Our original Python/Django/MySQL stack was great for development speed, but didn’t scale under load. For 2016, we rebuilt the system using App Engine with Datastore as the backing database. Datastore is great for scalability. Things that would be slow in traditional SQL databases are simply impossible with Datastore. This makes application design harder, but the resulting service is pretty robust.

Second-generation Hash Code Judge System

The same Judge System handling 4,500 queries-per-second in 2020
Hash Code 2017: iterate
Registered participants: 26,420 (EMEA)

With the new system in place, the 2017 edition focused on quality-of-life improvements. We expanded the Judge System with push-notification banners, per-country scoreboards, better hub manager experience, and more automated testing.
For problems, we focused on making the Qualification Round easy to understand. After 2016’s challenging Delivery drone routing problem, we created an optimization task featuring YouTube videos and pretty simple output spec, increasing solution submissions by 3x!
We also ran a new practice problem about optimally cutting pizza into slices 🍕.
Seems that someone is cutting pizza... 🍕 #hashcode2017 #ready4hashcode @Google pic.twitter.com/EHCGzXfD7x
— Ana Roig Jiménez (@anicacortes) February 16, 2017
Hash Code 2018: road to Dublin
Registered participants: 37,778 (EMEA)

For the 2018 edition, we ran a Qualification Round problem inspired by self-driving cars, a hot topic at the time.
Since our office space at Google France was closed for renovation, we moved the finals to Google Dublin. We created an urban planning problem referencing the newly re-architected Grand Canal Dock area where Google Dublin is located.
Another Hash Code first: two Google Dublin volunteers who helped with the 2018 Final Round met during the event and later married in the summer of 2021.
Hash Code 2019: going global
Registered participants: 70,865
By 2019, we’d been discussing going global for at least three years. After some debate on the competition format, we decided to preserve Hash Code’s “unity of time”: the feeling of participating together in one global event.
To stay approachable, we kept the 4-hour programming round. This is because longer marathons are less appealing to beginners. To preserve unity of time, we stuck with a single Qualification Round.
On February 28, 2019, Hash Code became a global programming competition! We ran a fun, easy-to-explain problem about arranging a photo gallery in the most “interesting” way possible.
Last week I took part with @KinnzaZ in a coding competition (#hashcode ) for the first time.
— Dalia Simons (@SimonsDalia) March 7, 2019
It was a blast, we failed and I wrote a new post about it: https://t.co/KAt0n3A8Xt
A big thanx to @Baot_IL for introducing us to this competition and hosting a hub #hashcodesolved
Hash Code 2020: virtual finals
Registered participants: 111,955
By 2020, our scoring system was battle-tested. We also had a pretty stable set of processes to manage the competition that we’ve been developing over the years, including a handy list of backup solutions in case something goes wrong. This list included some pretty unlikely scenarios such as loss of power in the office.
But our plans didn’t include what happened on February 20: YouTube’s live streaming system had a rare outage precisely during our livestream results announcement. What were the chances?

Livestream control room
Fortunately, this was not a critical part of the event: the competition itself was over at this time. We unfroze the scoreboard and sent out the livestream recording link over email.
The 2020 finals were planned for Dublin for the third time. But the pandemic struck, forcing us to pivot to online. I participated in the closing ceremony… from my bedroom. We got some very nice messages from the contestants who wanted us to know that they still had a great time ❤️.

Virtual World Finals announcement call with participants
Hash Code 2021: virtual hubs
Registered participants: 128,410

Max & David, enthusiastic announcers of the Qualification Round results
The 2021 edition was even more affected by the pandemic. We switched to virtual-only hubs to avoid unnecessary risks.
For problems, we intentionally chose topics unrelated to the pandemic: city traffic lights and organizing software projects. With all the disruption created by Covid, we wanted to offer an opportunity to think about something different for a few hours.
The Hash Code community showed up more than ever, reaching 128,410 registered contestants!
Hash Code 2022: new competition platform

In 2022, we completed a major unification of Google’s Coding Competitions stacks.
Coding Competitions consisted of three annual programming contests with different formats:
- Code Jam: algorithmic puzzles
- Kick Start: designed for beginners
- Hash Code: team competition focused on heuristics for computationally hard problems
The three competitions started off independently: Hash Code in France, Kick Start in APAC, Code Jam in the US. The competitions grew over time, and in 2022 we combined them under one global program.
The new, unified competition system had a few advantages. For the participants, it offered a more integrated experience: they no longer needed to switch between two websites (one for registration and another to compete). Internally, it reduced work duplication. The Coding Competitions infrastructure was developed by a dedicated team, freeing the Hash Code volunteers to focus on competition problems.
The sunset
Coding Competitions were sunset in February 2023, as announced in the Google Developers blog post .

Problem archive
We set up a problem archive on GitHub. My personal favorites include:
Street View routing (Hash Code 2014): The very first Hash Code problem that defined our competition formula. Directly inspired by real optimization work at Google France.
Data center reliability (Hash Code 2015): Neat problem capturing fundamental concerns of building reliable systems from unreliable components.
Photo slideshow (Hash Code 2019): One of the shortest Hash Code problem statements: just arrange photos into a sequence. And that problem is already NP-hard.
Lessons learned
We learned a lot from Hash Code! Here are key lessons:
Start small and iterate. We never would have tried starting a global programming competition as a side project at Google France in 2013. But starting a local event tailored to our needs with limited resources was worthwhile. From there, Hash Code grew iteratively, allowing us to make changes, learn, and adapt.
The secret ingredient was pizza. Each edition needed a good competition problem and scoring system. But the secret ingredient was always pizza, by which I mean the community feeling behind the competition. It was the teamwork, the opportunity to meet new people, the local hub experience and the buzz on social media that ultimately made each event feel worthwhile.
My favorite stat of each edition was the hub ranking by total score. While not perfectly fair (it favored bigger hubs), it embodied the Hash Code’s spirit, because every single team helped their hub’s standing, even if they scored just 1 point.

Thank you
Thank you to everyone who made Hash Code possible over the years! This includes our fantastic contestants, hub organizers, all my colleagues on the Hash Code team, and volunteers from various functions and geographies across Google.
A special callout is due to the tireless sponsor and organizer of the first editions of the event and the discoverer of the Hash Code pizza coefficient, engineering site lead for Google France, Vincent Simonet.
(Photos in this post courtesy of the Hash Code team, Mathias Kende, and others.)