On the early morning of May 20, we, the team of organizers of the first in the history of CUSTIS hackathon, were happy about the warm day that was raging (which is exclusive for spring 2017). Everyone thought about his own: administrators studied Wi-Fi-band loading schedules, girls from PR and HR departments looked at the list of participants, curators from the development department for some reason remembered Makarenko and the best management skills of distributed teams. Antikafe in the "Flacon", where we have to conduct hackathon, is still closed, the narrow passages between the lofts have not yet been filled with a thick fog from the wipes and the hum of gyroscooters. We were sure that everything was ready, but the light excitement did not leave us.
It was the morning before the battle. After 15 hours we, tired but satisfied, said goodbye at the same place, remembered bright moments, thanked the participants and each other and knew exactly how to conduct hackathons. Calm and sense of accomplishment.
This post is for those who are thrilled at the thought of having to organize such an event without multimillion-dollar budgets by a team of 20 people, or is wondering whether it is worth it.
There is no magic: cool ideas always emerge from the most pressing needs. Our projects, as in any growing company, have become strongly missed by young developers, and HR and PR services are classic ways to build trusting communications with potential employees.
What we practiced before:
Imagine that at once several key projects of the company enter the stage of production with a high rate of functional shipments. Open vacancies - a couple of dozen, core technologies - Java and C #. Outsourcing teams can not satisfy resource hunger, because people are needed in the core of the project team. And we need cool developers: with a bright head, a big kind heart and fire in their eyes, albeit with little experience in the harsh industrial design. And what is needed is that which no interview with Eychar and the solution of test problems will give at the interview: in a short time, check that the young developer is really talented, and we are really interested in him as a team. We firmly decided that friends are known in battle.
To solve these problems, the hackathon format ideally suited: the event can be compactly packed in one earth day and by the end of the day we can invite as many participants to work.
Hackathons within the team we spend not the first year. For us, this is not only a fan or a form of team building, it is a creative process, when we get to know each other, open common interests in some technologies and do useful things that our hands do not reach during working hours. A year ago, we destroyed the weekly pizza rate a day and made a beautiful utility to monitor the client’s combat servers, and this year we hooked Telegram-bot to the corporate bugtracker and wiki-portal in order not to open massive pages in our subnet.
It is not surprising that avid participants and inspirers of internal hakatons took up the preparation of the first external hackathon.
There is nothing easier than announcing a hackathon on a topic that is relevant to the industry or a particular company. As the issue of scrolling in Google shows, a hackathon can be arranged for almost any reason, it would be based on an idea that excites the industry or its individual players: machine learning algorithms, neural networks and computer vision, banking microservices, social and charitable projects, and even technological startups with TTM in 48 hours.
What we liked about the format:
What we wanted to bring from ourselves:
The idea of ​​the “Battle of Technologies” turned out to be so attractive that we firmly decided: let's arrange an IT tournament! There will be no jury and expert commissions, you will not need to defend your project before peems disguised as investors, you do not even need to participate in the beauty contest code. It's simple - as in racing or in business - you need to build something, test it and put it on the same stage with your opponent. And may the best man win!
The generation was taken over by the head of the development department, the leader of the HR department and a group of enthusiasts - several leading developers from each technical board. We generated ideas within the team, asked colleagues and friends, they would not fall asleep on such a hackathon, create themes on the developer forums and try to test the game mechanics on themselves.
Designing in the world of ideas is cool! There are scenes of a gambling and exciting tournament, unlimited options for the implementation of gaming algorithms. But ideas are in the air, and the implementation requires a lot of effort, even if the basis of the tournament, we put a simple game. As a result, we stopped at the sea battle: the game is quite dynamic, algorithmically comprehensible and does not require too much time to implement a working bot.
When the experts came to a consensus on the game mechanics and even began to make the first sketches of server-side, we shuddered again: only a month left to prepare.
We designed the format for about a month, after which it was time to fix the main details of the event. The final verdict looked like this:
When we decided on a gaming platform, it became clear that in order to successfully promote our idea to the masses, something more original is needed than an offer to play a naval battle. And a worthy plan was born there, in the depths of our development department: “IT people of all generations sincerely love the Star Wars universe. So why not call our tournament a galactic battle, and the whole surroundings - from the interfaces of the server side of the application to the design of the site - adapt to this concept? ”. Sea battle is not in trend - long live the space battle!
In order to provide all participants with the main tool of the proletariat of the 21st century - a customized development environment and convenient computers, our administrators carefully selected and rented 26 laptops . Visual Studio and IDEA were deployed to them, and we brought a backup server to the site and connected it to the local network (its powerful desktop played a brilliant role) in case the remote server was unavailable.
We implemented a game server, access to which was given to the teams during the competition. Architecturally, it consists of two parts: the RabbitMQ server and, in fact, the application server. RabbitMQ performs the function of communication between the server and bots, as well as between the admin panel and the server. He was chosen because of its lightness, speed and prevalence.
In order not to bother with the implementation of our security system, we decided to use RabbitMQ authentication and authentication. This is done as follows: if a user has the right to send messages to a channel, it means that he has rights to all actions associated with that channel. If he has the right to receive data from some channel, then he has the right to read them. Thus, the application server is free from the security logic.
The application server is very simple and does not require any container (the usual standalone java application). He connects to all the queues in RabbitMQ and listens to them. In this regard, the server is technologically similar to client applications. We can say that all the bots and the server form microservices tied with RabbitMQ channels. The difficulty here is only in the fact that the server stores a lot of information: current and past games, statistics, etc. So that it does not cause problems, for all such data there are limits on the number, that is, old information is forgotten and new information is remembered.
The server is written on Kotlin, but no special Kotlin magic is used - mostly functional and extension-methods.
More details about how bots interact with the server, as well as the technical task for the teams can be found in the manual , which we distributed to the participants before the start of the tournament.
In parallel, we started the track of the search site, suitable for technical and aesthetic parameters.
We wanted:
We almost did not return to the concept of a sea battle, because restaurants, lofts and galleries, decorated in an "underwater" style - the sea (sorry for the pun). But to find a suitable site on the theme of "Star Wars" was more difficult.
As a result, we still found several authentic places in which the old Vader himself would feel at home. Their great advantage is a ready-made themed decor and, of course, managers who are well-known not only with Star Wars, but also with IT (in the face of geek culture, as a rule).
Our shortlist looked like this:
We opted for antikafe. It was love at first sight, with which we easily forgave all the flaws.
As soon as there was agreement within our team that the backend of the event is fully ready for battle, we began to work actively on the “client side” of the tournament.
We imagined a portrait of a potential participant (and employee) as follows:
We had to:
Before starting to register for the tournament, we started a Google form , in which we tried to reflect everything we wanted to know about the guys. The form turned out to be convenient for putting together, storing and processing data, as well as a large team in parallel with the participants.
In order to announce the registration for the Battle, all available digital marketing tools were used, which we were able to mobilize in a short time with our own resources and with the help of our partners. We even almost staged a tote on the topic “How much time, effort and audience is needed for 24 developers to come to the hackathon?”.
The first in the battle were thrown e-mails. The text of the invitation of participants was decorated in the style of the event. We made two mailings on partner bases and two - on our own. Mailings were carried out in several stages. Coverage: 10,000 people. Result: 29 registrations (conversion = 0,29).
Then we hooked up the SMM artillery and advertised in the groups “Typical Programmer” and “ITmozg Programming” on VKontakte. About us learned 42 000 and 12 000 people, respectively. Result: 10 registrations (conversion = 0.02) and 5 registrations (conversion = 0.04), respectively.
A few more thousand people managed to reach out via Facebook corporate profile and repost of colleagues, guerrilla marketing in VK communities and thematic channels in Telegram. Our community CUSTIS Young VK did not bring us new registrations, but it became a good point of operational interaction with the guys who had organizational issues.
At the exit, the registration form showed interesting statistics:
It was nice to see that IT is all ages submissive, and young guys 16 years old and older feel themselves as young developers. Heavily older.
Approximately the same picture with the experience of our contestants. There was no big gap in the development experience, which means that everyone should be interested.
But this chart is a good reflection of market trends.
Despite all the fears that the developers - people who recognize the comfort and customization of only their own laptops, we did not lose. Rented laptops came in very handy.
We came up with the “Tell us about yourself” questionnaire so that the guys could share a short summary of their experiences and ask questions to the organizers. In addition to detailed stories about the achievements and expectations of the participants (and there were most of them), we received a non-trivial collection of interesting facts:
During the collection of applications, our Eychary promptly contacted the participants and conducted therapeutic discussions, offering to once again share information about their experience, clarify the details of participation and answer all questions about our tournament.
On the last day before the hackathon, we summarized the final statistics:
In parallel with the registration was the purchase of prizes. For several reasons, we refused cash gifts. We purchased:
The night before the tournament, we brought all the equipment to the site (laptops, server, prizes), tested the Internet connection, the projector and the acoustics again. Everything was going fine until we decided to arrange the sofas and tables so that all eight teams were located in the main part of the cafe. We resorted to feng shui and 3D visualization, swapped tables and puffs, but we never got the perfect seating. In some confusion, but with the hope that in the end all teams would be equally comfortable, we headed home.
Early in the morning of May 20, we, the organizing team ... Stop, we have already talked about this. Apart from subjective experiences, we did this:
We met the guys, pasted a name badge, handed a brochure with the rules of the tournament, which for the first time opened the veil of secrecy over what particular bots would have to be created. The participants had breakfast on the veranda, studied the instructions and prepared themselves morally for the upcoming battle. In the anti-cafe, they were already met by our admins, who gave out laptops, helped to connect to the network and configure the infrastructure.
What is the real conversion, we realized half an hour before the start of the tournament. Despite the active morning follow up, persuasion, bargaining with arguments about cookies, by the beginning of the battle only 14 out of 31 declared participants had arrived. It was necessary to rely in advance on industry statistics and understand that about 50% of the “confirmed” participants come to most free events.
At 11:05 a volition was made to start the battle. Those who were able to defeat sleep this morning, the difficulties of navigating the "Flacon" and a dense coffee break, were worthy of the prize of organizational sympathy. And, guided by the principle of "fourteen brave sixteen sleeping do not wait," we announced the start of the tournament. We presented ourselves and the company, told about our curators. After that, the participants were divided into five technology teams (blind lot and colored badges helped us) and comfortably placed on the site (every cloud has a silver lining!).
After the performance of the organizers, our curators ascended to the scene, who with enthusiasm told much more than what was written in the manuals, explained the rules and rules of the battle.
Before starting to develop bots, participants had to connect to the general tournament repository on GitHub. As it turned out, not everyone had a “live” account there, so we spent a significant part of the morning stage creating and setting up the infrastructure. We should have warned the participants in advance so as not to lose precious time.
Since before lunch it was possible only to establish contact with the repository, to set up a connection to the server and to establish the distribution of roles in the teams, it was decided not to delve into coding and immediately eat.
After lunch, the active phase of development and debugging of bots started. Curators were snapped up, and battles with server bots of different levels of complexity occurred more often. But the teams were still not ready to compete with each other. They wrote the code, displayed the fights with the server visualization, and, realizing that the bot named Yoda could not be overcome, they sent to debug the algorithms of their creations.
Unlike other team events, on the hackathon, the silence of the hour hanging on the platform is not at all a sign of general gloom and inescapable longing. These are periods of concentrated work, when attempts to stir up participants will only distract them and knock them out of the stream. The invisible excitement of this activity is always within teams.
The sun was on the horizon, and we decided to hold the first championship. For this, the teams interrupted the endless process of improving the code and put their bots on a common arena. When all the teams played the established number of games in a circular system and watched the visualization of the most successful battles, we made the first rating. It became clear from him that the level of the teams participating in the battle is very (although not critical) different. But since the motto of the battle demanded the victory of the strongest, we decided not to take this into account.
The presence of favorites in the tournament does not discourage competitive spirit. Participants will have a visible guideline that they need to achieve in order to compete for victory.
We understood that the timing designated at the beginning does not fit. By the end of the next stage of optimization, one of the teams overcame the main boss of the server, Yoda. The rest of the teams also felt confident before the final, one of them even managed to “put” the server in the next hot battle.
The four best teams entered the playoffs and played the final games in the tournament system. In the "final" mode, the server immediately turned on the visualization of the battle, and we on the big screen watched the ups and downs of the top bots of our participants. It was like watching the finals of the Champions League and other similar events: everyone gathered in front of the projector screen and was cheering for their bots. Attempts to optimize bots were made even in the short breaks between battles.
The tournament ended around midnight. We awarded the winners and teams that took second and third place. Other participants received cool souvenirs and hoodies. We also provided the guys with lunchboxes with burgers and cupcakes on the road.
The guys thanked the curators and each other for a great day, continued to vigorously discuss the outcome of the battle, and even shared prizes with other teams. At half past midnight, loading all the equipment in the car, we again stood at the entrance to the antikafe. Tired, but satisfied that the event was a success.
After the tournament, we received feedback and questions from the participants and collected feedback. The curators looked more closely at the code created by the participants and evaluated the overall level of the teams. Eychary continued to communicate with the guys and received questions about the opportunity to join our team.
In general, we received grateful feedback: the participants were satisfied with the work done, many asked to leave access to the server in order to improve the bots after the battle and once again arrange Yoda and other bots a rematch.
At the time of writing, we are in touch with most of the guys. Five of them (including the winners of the battle) expressed interest in cooperation and are now interviewing our HR managers and heads of production units. Although our hackathon brought together few participants, we consider it a success because:
What turned out to be a cool hackathon (true for participants and organizers):
What challenges did we face:
We were happy to share the story of our "hand-made" hackathon, tried to focus on details and nuances that are almost impossible to take into account when doing such an event for the first time. We do not want to loudly declare that this text claims the proud name of the DIY-hakatonostroyeniya. Each company is unique in its organizational culture and is looking for its own special path to the hearts of young professionals. Everyone is free to choose their tools for working with the HR brand.
But we can state with confidence that the hackathon format, no matter how trivial and beaten it may seem “outside”, is filled with special magic that allows you to take a fresh look at the motivation of participants and organizers, the process and the practical result of the whole event. The bottom line is that during the whole day (or even a couple of days) you will observe a dynamically changing work flow, situations of mutual learning and self-motivation (this applies not only to participants, but also to the organizers), building an optimal team tactic. All events occur in a short time and in a limited space, so you can see skills and competencies in real-time mode, which take weeks to open in the usual working mode.
Source: https://habr.com/ru/post/333634/
All Articles