This year we participated in the Hash Code 2021 for the first time. We took this opportunity to organize various activities, both internal and external, related to this famous world competition.
All of it was, of course, remotely.
Hash Code is the challenge annually launched by Google and inspired by the problems that Silicon Valley engineers face every day.
The competition brings together developers from all over the world, who team up to participate in the challenge together.
Teams are organized for using a specific language. This is because everyone, during the challenge, receives the exact same problem, but the resolution methods are totally free.
Companies, universities, communities, and other groups organize their own Hubs every year: physical places where people registered for the challenge can meet to face the challenge together.
This year the Hubs were organized in virtual mode, and at Mia-Platform, we took the opportunity, formed a Hub, and organized preparatory activities for our coders.
As we said, the Hubs this year have gone from being physical places to virtual places.
In both cases, the first step is to register your Hub to the Hash Code Challenge, to get listed and appear on the official map along with all the other hubs.
We have chosen Slack as a virtual meeting place for the people registered in the Hub: here we have provided all the useful information, sent reminders for deadlines, helped in the teams organization, and told about the initiatives we would have carried out considering the official challenge, including the training Kata.
The training Katas
The term Kata, besides defining a typical exercise of Karate, is also used to identify a programming exercise that is carried out to improve development skills through practice and repetition.
At Mia-Platform the practice of Kata is part of the periodic activities of continuous improvement for developers. It is carried out both individually and in pair programming, and this year it has been transformed into virtual mode.
From this experience, we combined the practice of Kata with the Hash Code challenge and organized two appointments that were a real simulation of the hashcode:
- A Kata aimed at Mia-Platform’ employees, in which we carried out the practice problem provided by Google;
- A Kata open to the public: in the same way as the one addressed to Mia-Platform’s employees, we choose another problem among those of past editions. We have involved the people of our Hub in a unique moment of training together.
The Internal Kata
Kata is a regular event at Mia-Platform: it is very popular and appreciated. Using the Hash Code model was an absolute novelty!
The Kata organization team has made an excel file available to everyone with the list of participants and each participant could enter his/her favorite languages.
We began organizing the teams, which had to be a minimum of two and a maximum of four members, based on the most appreciated language. It was fun, in the days before to the training Kata, to see the various team proposals within the various company chats and the consequent choice of names for each team.
Once the teams were organized, a link to a room on Google Meet was assigned to each one.
After a plenary altogether, in which the organizers explained the rules and gave some useful information, all the teams received the problem and gathered in the various rooms to start with the challenge.
We used the Judge System, as the tool used by Google to manage the loading of solutions and the calculation of scores.
The various teams uploaded their results on the Judge System during the four hours of training. At the end of the exercise they met in the main room to see the ranking and discuss the various solutions.
For us experimenting the Kata with a new type of exercise was certainly rewarding. The problems proposed by the Hash Code are complex but fun and all the participants appreciated the initiative, asking to replicate it periodically. Not only that: although it was an activity aimed primarily at developers, other employees participated and enjoyed the experience, as the problems proposed by the Hash Code involve a lot of team discussion and reasoning.
The Public Kata
Once we experienced the Kata internally, we decided to make the event public. Although the modalities were almost the same, the fact that the event included external guests clearly posed some additional elements of complexity.
First of all, we decided to schedule the event for a Saturday afternoon, after which we opened real registrations.
Several people had joined us on Slack to discuss, organize, and sign up for the challenge with us. Not all of them, however, could participate in the Kata, so it was necessary to create a filter.
Through a simple Google Form, we collected registrations from people who had reached us on Slack and from Mia-Platform’s people, and we shared the initiative through our social channels and our blog.
In the form we immediately asked each participant which languages were known and preferred. We created an excel with the list of participants and the known languages, and we made it available to everyone so they could team up.
On the day of the Kata, as for the internal event, we held the first minutes of the meeting to reorganize the teams: this is very important because, even with the best of organizations, there is always some cancellation or some participants who join at the last moment and must be taken into account.
Being the organizer of a Hub allows you to get in touch with all the other Hub organizers in the world and this was also very important for the realization of this event.
Why? Because some of the other organizers shared a file with all the solutions of the past tournaments, to allow everyone to train at his/her best.
Thanks to this, Davide Bianchi and Davide Tantillo of Mia-Platform, within the team of organizers, decided to create a real Judge System where training participants could load the solutions and see the ranking in real time.
This meeting was a success: people, especially those who had never participated in a Hash Code, had the opportunity to experience this coding challenge mode and train for the official race that would take place a few days later. In addition, our Judge System made the appointment truly unique.
The day of the Hash Code challenge
Going back a little bit, the basic steps to participate in the Hash Code are:
- Register for the challenge as individuals;
- Be part of a team and have the team enrolled in the Judge System;
- Optional: enroll the team in a Hub to fully enjoy the experience.
This is why the organizers of the challenge themselves encourage participation through a Hub. Those who join a Hub have someone who guides them, who remembers deadlines, who organizes training moments and, in a world where you can meet freely, organize a unique day to share the challenge in the same place (accompanied by food and drinks, of course).
On the day of the Hash Code, since we could not make our office available as we wanted, we took care of keeping time for all the teams and accompanying them during the challenge.
It was a very intense four hours: in the last moments, it was no longer possible to see the progress of the leaderboard.
In addition, to encouraging participants to stay focused and do their best, we enjoyed sharing the names of teams around the world that we found by looking at the leaderboard.
A few of our favorites:
Despite the obligation to carry out everything remotely, we decided to take this opportunity and get involved by opening our virtual Hub and organizing preparation activities for the registered teams.
We were happy and satisfied with it, and we also found great gratification from the participants.
We invited the public Kata’s participants to respond to a short survey: 80% answered "a lot" to the question if they appreciated the initiative, and 100% said they would participate again.
Internally, the satisfaction was great too: many people asked for a Hash Code-themed Kata to become a regular appointment and they particularly appreciated the group challenge, the reasoning together, and the final confrontation.
Many said that simulation training was important to perform better during the Hash Code. It was a moment particularly appreciated by those who participated for the first time, but also by those who had already participated and thus had the opportunity to test themselves with new reasoning and languages.
Those who joined us for the first time had the opportunity to arrive well prepared for the competition, avoiding the classic initial disorientation and losing precious time.
In light of this experience, we are confident that we will open the doors of our Hub again, with the hope of being able to organize a meeting moment in our brand new headquarters.