Digital Breakthrough — How It Happened

This is not the first hackathon I have won, nor the first one I am writing about, and this is far from the first post on Habr dedicated to the 'Digital Breakthrough.' But I couldn't refrain from writing. I believe my experience is unique enough to share. I am probably the only person at this hackathon who won both the regional stage and the finals as part of different teams. Want to know how it happened? Welcome under the cut.

Regional Stage (Moscow, July 27-28, 2019).

I first saw the advertisement for the 'Digital Breakthrough' somewhere in March-April of this year. Naturally, I couldn't just pass by such a large hackathon, so I registered on the website. There, I familiarized myself with the conditions and the competition program. It turned out that to attend the hackathon, one had to pass online testing, which began on May 16. And perhaps I would have completely forgotten about it, as I didn't receive a reminder email about the start of the testing. I must say, later ALL THE EMAILS that I received from the CPO consistently ended up in the spam folder. Even though I pressed the 'not spam' button every time. I don't know how they achieved such a result; it never worked out for me with MailGun. And it seems the guys are not aware of services like isnotspam.com at all. But we digress.

I was reminded about the start of the testing at one of the meetings of the startup club, we also discussed team formation there. As soon as I opened the list of tests, I immediately focused on the Javascript test. Overall, the tasks were more or less adequate (for example, what will be the result if you add 1 + '1' in the console). However, based on my experience, I would approach using such tests for hiring or team selection with significant reservations. The fact is that a programmer rarely encounters such things in real work; their ability to quickly code does not correlate with these kinds of knowledge, and it's quite easy to train for such tasks for interviews (I know this from my own experience). In general, I completed the test fairly quickly, checking myself in the console in some cases. The Python test had similar tasks; I also verified myself in the console and was surprised to score higher than in JS, even though I have never professionally programmed in Python. Later, while communicating with the participants, I heard stories about how strong developers scored low on the tests, how some people received emails stating they didn’t pass the selection for the CPU, yet were still invited to it. It's clear that the creators of these tests probably knew nothing about test theory, nor their reliability and validity, nor how to field-test them, and the idea of tests was doomed from the start, even disregarding the main goal of the hackathon. And the main goal of the hack, as I learned later, was to set a Guinness World Record, which contradicted the tests.

At some point after completing the tests, I received a call asking if I would participate, clarifying the details and explaining how to join the team selection chat. Soon, I logged into the chat and briefly introduced myself. The chat was chaotic, creating the impression that the organizers had attracted a lot of random people, who had no connection to IT, with their advertising. Numerous product managers "of the Steve Jobs level" (a real phrase from one participant's presentation) were posting stories about themselves, and there weren't any decent developers in sight. But I got lucky and soon joined three experienced JS programmers. We got to know each other at the hackathon and then added a girl to the team for inspiration and to handle organizational issues. I don't remember why, but we chose the theme "Cybersecurity Training" and ended up in the track "Science and Education 2." For the first time, I found myself in a team of four strong programmers and experienced how easy it is to win with such a team. We came unprepared and spent the morning arguing, unable to decide whether to create a mobile app or a web application. In any other situation, I would have thought this was a failure. The most important thing for us was to understand how we would be better than our competitors, especially since there were plenty of teams creating tests and games related to cybersecurity. Observing this and Googling educational programs and apps, we decided that our main distinctive feature would be training based on a fire drill principle. We selected a whole range of features that seemed interesting for implementation (registration with email verification and password checks against hacker databases, sending phishing emails (disguised as messages from well-known banks), social engineering training in the chat). Once we figured out what we were doing and understood how we could stand out, we quickly developed a full-fledged web application, and I took on the role of backend developer, which was unusual for me. Thus, we confidently won our track and, along with three other teams, advanced to the finals in Kazan. Later, in Kazan, I found out that the selection for the finals was a sham, as I encountered many familiar faces from teams that did not make the cut. Journalists from Channel 1 even interviewed us. However, the report showcased our application for just one second.

Digital Breakthrough — How It Happened
I won the regional stage with the Snowed team.

Final (Kazan, September 27 – 29, 2019)

But then the setbacks began. All the programmers from the Snowed team, one after another, reported that they wouldn't be able to go to Kazan for the final. I started thinking about finding a new team. At first, I reached out in the general chat of the Russian Hack Team, and while I received quite a few responses and invitations to join teams there, none of them really appealed to me. Some were unbalanced teams, like the combination of a product owner, mobile developer, and frontend developer, reminiscent of the fable about the swan, the crab, and the pike. There were also teams that did not match my technological preferences (for example, ones working on mobile apps using Flutter). Finally, in a chat that I considered to be a bit trashy (the one on VK where team selections were happening for the regional stage), an announcement was posted looking for a frontend developer, and I randomly wrote to them. The guys turned out to be graduate students from Skoltech and immediately suggested meeting up to get acquainted. I liked that; teams that prefer to meet right away at hackathons usually raise concerns for me due to their lack of motivation. We met at ‘Grably’ on Pyatnitskaya. The guys seemed capable, motivated, confident, and certain of victory, and I made my decision right there. We didn't yet know what tracks and tasks awaited us in the final, but we supposed we would choose something related to Machine Learning. My task would be to write an admin panel for that, so I had already prepared a template based on antd-admin.
I traveled to Kazan for free, covered by the organizers. I should mention that there was already a lot of dissatisfaction expressed in chats and blogs regarding ticket purchases and, in general, the organization of the final, and I won't recount all of that.

Upon arriving at Kazan Expo, registering (I encountered minor issues with obtaining my badge) and having breakfast, we went to choose a track. We only spent about 10 minutes at the grand opening, where officials spoke. In fact, we already had preferred tracks, but we were interested in the details. In track No. 18 (Rostelecom), for example, it turned out that a mobile application needed to be developed, although this was not mentioned in the brief description. Our main choice was between track No. 8 on Pipeline Flaw Detection, PAO Gazprom Neft, and track No. 13 on Perinatal Centers, Audit Chamber of the Russian Federation. Both required Data Science expertise, and both could integrate web components. In track No. 13, we were stopped by the fact that the Data Science task was quite weak; it involved parsing Rosstat data and it was unclear whether an admin panel was needed. Moreover, the value of the task raised doubts. In the end, we decided that as a team, we were more inclined towards track No. 8, especially since the guys already had experience solving similar tasks. We started by brainstorming the scenario in which our application would be used by the end user. We figured out that there would be two types of users: technical specialists interested in technical information and managers needing financial metrics. Once we had a clearer picture of the scenario, it became apparent what needed to be done on the front-end, what the designer should draw, and what methods were necessary on the back-end, making it possible to distribute tasks. Responsibilities in the team were divided as follows: two people were working on ML with the data acquired from tech experts, one person was writing the back-end in Python, I was developing the front-end using React and Ant Design, and the designer was working on the interfaces. We even arranged ourselves in a way that would make it easier for us to communicate while tackling our tasks.

The first day flew by almost unnoticed. In discussions with the tech experts, it became clear that this task had already been resolved by them (by Gazprom Neft), they were just curious if it could be done better. I can't say that it lowered our motivation, but it left a bit of a lingering feeling. I was surprised that the section moderators noted the working teams at night (as they mentioned, for statistics), which is usually not practiced at hackathons. By morning, we had a prototype of the front end ready, some early concepts of the back end, and our first ML solution. Overall, we already had something to show the experts. In the second half of Saturday, the designer created significantly more interfaces than I could code and switched to preparing the presentation. Saturday was reserved for record registration, and in the morning, everyone working in the hall was kicked into the corridor; entry and exit from the hall were controlled by badges, and you could exit for no more than an hour during the day. I won't say that this caused us any significant inconvenience; we spent most of the day sitting and working anyway. The food was indeed very sparse; for lunch, we received a cup of broth, a pie, and an apple, but again, this did not upset us much as we were focused on other things.

They periodically handed out red bull, two cans per person, which was very timely. The long-proven hackathon recipe of energy drink + coffee allowed us to code all night and the following day, feeling as fresh as a daisy. On the second day, we were basically just adding new features to the application, calculated financial indicators, and started showing graphs on defect statistics in the main lines. There was no formal code review in our track; experts evaluated the task solution in the style of kaggle.com, based on forecasting accuracy, while the frontend was assessed visually. Our ML solution turned out to be the most accurate, perhaps this is what allowed us to break into the lead. On the night from Saturday to Sunday, we worked until 2 AM, and then we went to sleep at the apartment we used as a base. We slept about 5 hours, and by 9 AM on Sunday we were already at Kazan Expo. I was hastily finishing up something, but most of the time was spent preparing for the pre-defense. The pre-defenses were held in two streams, in front of two teams of experts, and we were asked to present last because both teams wanted to hear us. We took this as a good sign. The application was shown from my laptop, from a running dev server; we didn't manage to properly deploy the application, but that’s what everyone did.

In general, everything went well; we were pointed out moments where we could improve our application, and in the time leading up to the defense, we even tried to implement some of these suggestions. The defense also went surprisingly smoothly. After the pre-defense, we knew that we were ahead in points, we led in solution accuracy, had a good frontend, good design, and overall, we had a good feeling. Another favorable sign was that the moderator from our section took a selfie with us before entering the concert hall, and that’s when I suspected she might know something))). But we didn’t know our points after the defense, so the time until our team was announced from the stage was a bit tense. On stage, they handed us a cardboard with the inscription 500,000 rubles and a bag with a mug and a phone battery for each of us. We didn’t get to fully enjoy our victory and celebrate properly; we had a quick dinner and took a taxi to the train.

Digital Breakthrough — How It Happened
The WAICO team wins the finals.

Upon returning to Moscow, we were interviewed by journalists from NTV. They filmed for a whole hour on the second floor of the cafe "Quarter 44" on Polyanka, but only 10 seconds were shown in the news. After all, that's quite a progress compared to the regional stage.

To summarize the overall impressions from the Digital Breakthrough event, they are as follows. A tremendous amount of money was spent on the event; I have never seen hackathons of this scale before. However, I cannot say that it was justified or that it will truly pay off. A significant part of the participants who came to Kazan were just party-goers, unable to do anything practical, and were brought in to set a record. I can't say that the competition in the finals was tougher than at the regional stage. Additionally, the value and usefulness of some tasks in certain tracks is questionable. Some challenges had already been solved at the industrial level long ago. It later turned out that some organizations leading the tracks were not even interested in their resolution. And this story is not over yet; the leading teams from each track were selected for the pre-accelerator, and it's assumed that they will result in DISRUPTIVE startups. But I'm not ready to write about this yet; we'll see what comes of it.

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster