📜 ⬆️ ⬇️

Where the technical line with a car is rolling: hakatons in Avito

In my last post I talked about hackathons. Different, good. So good that inside the company I wanted to arrange my own competitions. In the post I will tell you how the hakatons passed in Avito, what projects they implemented, about the technicals with a poltorashka, kodokatitsu, the dining room witness and socks with cats.



Avito internal hackathons


Poltorashka


image The first hackathon was scheduled for a day and a half. Small, experimental, simply organized, homely. The name suggests itself - "Poltorashka."


The hackathon was held on Friday and Saturday: the management gave the participants one working day. Everybody liked it, use it further.


For work we took a conference room, so as not to interfere with colleagues: the first day is working, Friday. The organizational part is one meeting of participants on the eve of the hackathon. For half an hour they told about the format, answered the questions, announced the rules. Meals organized on the basis of their dining room.


The rules were strictly followed: the repositories were closed for recording after the deadline, and the final pitches were taken for three minutes. Pitch recorded on video. Winners were determined by a general vote of the technical department, even among those who did not participate in the hackathon. Therefore, the awarding took place a week after the end of the hakaton, when the voting was over.


There was a fear that there were not enough people inside the company, but everything went fine: more than a dozen teams showed up, it took one and a half days.


Technicals


image The second hackathon was an experiment with limited subjects. He was dedicated to technical issues: technical portal and internal development tools, open source candidates tools. Chose the name: "Technical".


Introduced a simple system of nominations, for example, the most uporotyh hack or the most useful hack. The winners in the nominations received a choice of a quest trip or a bar. Guess what the winners choose. The best projects were determined immediately after the completion of “Technicals”: ​​by voting among hackatons.


Fifteen teams showed up. Participants began to come up with funny names for the teams, offering bold project ideas. A number of high-quality prototypes appeared.


Chucknology


image The third hackathon, Chucknology, concentrated on finding new solutions within the product, continued to support open source projects and useful tools. A list of promising technologies for the nomination "The most innovative hack." A challenge cup appeared as the main prize. The names of the winners are engraved on it. Already in the plans to attach steps like the Lord Stanley Cup.


Fourteen teams at the finish. Ideas have become bolder, and projects are much more complicated: neural networks everywhere, sly clustering of large amounts of search data, advanced visualization. Demonstrations and presentations matured. Presentations with photos and videos taken during the hackathon began to appear.


At one of the demonstrations, we photographed the hall on the camera of a smartphone, and the demonstrated application neatly framed the Witness crowd from Fryazino into the crowd. Soon, a full-length cardboard Witness appeared at the office. Sometimes he travels to conferences with us, and sometimes he helps on hackathons.



This screenshot is from an internal service written in mezhakatone and allowing you to find out if there is a queue in the dining room. Hackatons already threatened to screw computer vision to the service in order to display the queue length in the form of a metric in monitoring.


Kodokatitsa


image The fourth hackathon set a record for the number of teams: twenty. By tradition, Rust is one of them. The names continue to evolve: “Swollen batter” and “Generate the door for me or the client started drinking for me,” working side by side. Before the hackathon in the chat goes agitation:


Hakatonschiki! There are still places in the “Asynchronous stops” team!
We write host-based IDS on Rust using blockchain. Requires rusty hardcore bendenders and one fender with a spinner. Asynchronists of all countries, unite!

This time the winners were determined by an independent jury. Only one nomination, “Choice of Technical Department”, was submitted for an internal vote.


Subtotal


What is important to learn when organizing internal hakatons? We picked the optimal frequency - once a quarter. Found a suitable format: start on Friday morning, completion on Saturday evening. We are announcing another hackathon at domestic events, mailings in chat and mail.


We form teams in advance, we define the topic. We carry out brainstorming of ideas by one or several teams, if there is a contact on the subject. We try not to compete in the framework of one idea. We are not afraid to write on the grow and take on tasks of the level of the operator of a cubernetic and neuron.


Minimalism in the organization: provide a place, food. A day before the hackathon - a meeting for half an hour with a story about the format and regulations. In conclusion, pitches and debriefing.


Projects


Four hackathons of ten to twenty teams have already passed. The result - a lot of projects. Some of them even became the basis for combat services. Part of - useful internal tools. You can not tell everything, but I will tell about some projects.


Defining a microcategory and generating an ad title on Avito from a photo


A demo version of the service was created on the hackathon, which prompts the Avito user with a product microcategory and offers a title only from a photo from the phone. The project won in the nominations "The most innovative hack", "The coolest new feature", and "The best project according to the hackathon participants". Already used in the work. More details about the service of computer vision - in the report of Arthur @ N01Z3 Kuzin at the recent meeting in Avito. The general scheme of the approach is shown in the figure.



And here is the project team:



Filters for Paparazzo


Many people know about our open-source project, the Paparazzo media picnic. He has already been mentioned in this blog: 1 , 2 . During the hackathon, colleagues conducted the development of additional opportunities for it. Many Avito users, before placing a photo of their car, cover up its numbers. Or somehow else edit the illustrations for the ad. To make it easier for them, the guys came up with the idea of ​​building filters directly into the media picnic. For the community, this means an open source component with filters that can be embedded in your application. You can write the filters yourself or take them from the catalog.


The entire project was written in Swift, working with DeepBelief was conducted on Objective-C. On the hackathon, the built-in face detection via CIDetector was used, the number search was implemented using the DeepBeliefSDK framework , which can recognize what is shown in the photo.


Several filters, in particular, automatic smearing of faces and numbers, were embedded in the main application using new Vision and CoreML system frameworks. Work with filters laid out in the open source .


Also for the project a magnificent filter was implemented, having the witness from Fryazino near the people in the photo. What for? The author states:


He just makes the world better.

The project with filters won in the nominations "The best open-source" and "The most incendiary presentation".


Gallery:


Video:

The project team:



Office map


When the company grows, there is a need for navigation, search for colleagues, office equipment, and negotiations in the office. To solve this problem, you can draw a two-dimensional plan of the premises and even add an interactive one linked to the employee database. But it is much more effective and clearer to make the map three-dimensional. Alexander s9k Amosov told about this project at RHS ++ 2017 and MoscowJS 37 .



The reports describe the process of creating WebGL-visualization, starting from creating a model in a three-dimensional editor and ending with optimizations from the world of computer games. Watch the video at the link above if you want your interactive 3D project.


This project is the winner of the nomination "The best hack on a free theme" of the very first hackathon. For more than a year, it has been used at Avito and makes life much easier for employees.


Kubernetes load testing tool


Another project that emerged as a result of the hackathon is a system for performing load testing using Kubernetes. Its goal is to provide an infrastructure for load testing microservices. In the graphical interface, you can specify what to load, load profile and other parameters. And then press the button, and the system will go off the shooter and conduct load testing.


Technologies used: Golang for writing infrastructure components, working with API Kubernetes, Yandex Tank for launching firing using declarative description of load parameters, Kubernetes for orchestrating components, Redis for firing queue, Graphite for metrics. The system consists of several components: web UI, shooting queue, workers for queuing queues and discovery of free tanks, tanks with an API to check the current state.


The task of firing comes from the user through the web-interface and is added to the queue (Redis). Workers read from the queue and produce discovery tanks using the kubernetes API. When there is a free tank, the task goes to work and the shooting is done. During shooting, metrics are written to graphite. After shooting, it is possible to see the main metrics for latency, rps and custom metrics for cpu, RAM, etc. This project will be finished and used in work tasks.


Accounting for mobile devices


One of the hackathons brought us a tool that very soon will take over the accounting of devices for testing. He knows how to read the pass, write down who took the phone, understand that the device was taken without attaching the pass and - a nice bonus - to charge the phones.



The project won in the nominations "The most useful internal tool" and "One soldier in the field."


Vacationer


The bot for Slack, written during the hackathon, knows how much you can take a break and helps colleagues generate vacation requests.



Helm


For hosting services inside Avito, we use the Kubernetes cluster. To manage releases - Helm. Helm was tested in the framework of the hackathon, and then successfully implemented.


Map of shadows on the terrace


I already wrote that one of the important components of a good hackathon is an uproar. This project - the winner of the nomination "The most uporotyh hack." The fact is, we all love to work on the terrace and do not like it when the sun shines brightly on the monitor. And now we have a tool that shows where there will be a shadow on the terrace at the selected date and time. From the technology library was used threejs.org .



Conclusion


Internal hakatony gave a handful of nice features and tangible utility. Part of the implemented projects is used, the other is waiting in the wings. The third showed the consistency or inconsistency of the idea, allowed to evaluate the complexity of its implementation. Hakatonschiki began to deviate from their usual stack of technologies more often and try something unknown to them: AST parsits, blockchains are trained, they write in new languages. There was a competitive moment. With each hackathon, the technologies used are becoming more and more complex, the names of the teams and the presentation are more incendiary.


And I managed to find out how ventilation works when people are not working, to watch the most beautiful sunsets from the fifteenth floor, sleep in a cozy mink, chat with aquarium fish in the twilight of an empty office and return home in blue shoes over green socks with cats.



PS


While the article was ripening, I managed to go through the fifth hackathon - “Grogchain”. And, for the first time in the history of Avito hackathons, my team Du kannst mich gern haben managed to get a nomination for an uproar. They made an iron release button. Wooden case, inside of which there is a button from some factory conveyor and a smart piece of iron with a wifa. You press the button - the service rolls out into battle.



Somehow I'll tell you more about the fifth hackathon. About the telegram bot, about smart caching, about why QA is no longer needed and how to pump your Exchange.


')

Source: https://habr.com/ru/post/342466/


All Articles