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.