image

Хакатон – соревнование среди разработчиков для создания цифровых решений в интересах заказчика. Хотя мероприятия такого типа очень популярны в IT-среде, многие талантливые специалисты опасаются участвовать в них. Одна из причин – стереотип о гарантированной потере прав на разработанное решение. Развеивает этот миф, а также рассказывает о преимуществах и перспективах состязаний программистов один из победителей масштабного хакатона Евгений Маврин.

Евгений – молодой перспективный разработчик. Приняв участие в треке «Мегапопис Москва», организованном столичным Агентством инноваций в рамках онлайн-хакатона VirusHack, он в составе команды EGD BAG (вместе с Алексеем Айрапетовым и Анной Коваленко) выполнил лучше остальных задачу по созданию информационного бота для мессенджера ICQ New, который сообщал пользователям о распространении коронавирусной инфекции.

image

— Евгений, чем Вы и члены Вашей команды занимались до участия в хакатоне? Где учились, где работали, какие проекты вели? Занимались ли бизнесом?

— Мы команда одногруппников. Закончили магистратуру МГТУ имени Н. Э. Баумана по программе «Информационные системы и технологии» в 2019 году. Все занимаемся программированием, но в разных направлениях. У меня, например, основной стек – это С++/Qt, а у Леши (Алексей Айрапетов – прим. автора) – Java. Помимо основной работы каждый из нас имел свои pet-проекты в разной стадии завершенности (читать заброшенности). В общем, до релиза мало чего дошло. Бизнесом никто из нашей команды ранее не занимался. Но мы участвовали, скажем так, в «дружественном фрилансе», когда просто требуется IT-помощь кому-то из знакомых.
Благодаря образованию и общим интересам в сфере IT нам не составляет особого труда предложить и реализовать работающее решение практически к любой проблеме.

— Первый ли раз Вы принимали участие в хакатоне? Как узнали о треке «Мегаполис Москва»?

— Лично я уже участвовал в хакатоне Aramco Upstream Solutions Technathon 2019 в команде с товарищами из РГУ нефти и газа имени И.М. Губкина, но в тот раз нам не повезло. В команде не случился match среди участников.

О треке «Мегаполис Москва» узнали от друзей: просто кинули в чат рекламу из какого-то сообщества шарпистов (С# — разработчиков). К участию в хакатоне VirusHack подошли ответственно: заранее определились с задачей и примерно распределили обязанности. И это реально помогло.

— Как Вы оцениваете сложность задачи заказчика ICQ New? Каков уровень соперников?

— Задача идеально, на мой взгляд, укладывается во временные рамки хакатона. Зачастую за пару дней, которые отведены под хакатон, в качестве итогового решения многие команды представляют концепцию или прототип. Мы же представили готовый продукт, который в дальнейшем вместе с заказчиком быстро вывели в продакшн. Уровень соперников был высоким. И я действительно волновался, увидев результаты других команд. Многие участники позволяли себе вольную трактовку поставленной задачи: кто-то, например, сделал бота, с которым можно было играть в простенькие казуальные игры.

— Расскажите о том решении, которое получилось в итоге? Какие инструменты были задействованы для его разработки?

— В итоге получился информационный бот, который сообщал пользователям о распространении коронавирусной инфекции.

По геотегу люди могли получать сведения о новых и старых случаях заражения граждан, узнавать адреса ближайших медицинских учреждений и лабораторий для сдачи тестов на COVID-19 и адреса ближайших к ним аптек и магазинов. Также в бот был встроен упрощенный генератор SMS-сообщений для получения электронного пропуска.

Для регулировки вычислительных потоков при написании бота были использованы стандартные инструменты языка Java. Чтобы значительно упростить работу бота, была выбрана API-библиотека от ICQ. Также была решена задача по упрощению развертывания бота в продакшн-среде: зная, что стандартом в корпоративной разработке сейчас является Docker, мы подготовили Docker-образ.

В общем, получился продукт, простой в модернизации и приспособленный к масштабированию.

— Что было сложнее всего?

— Самым сложным, наверное, было «причесать» весь функционал бота, чтобы им было удобно пользоваться. Мы реализовали интерфейс таким образом, чтобы пользователь вводил данные текстом только в крайних случаях, как, например, для указания причины оформления разового пропуска (да, еще недавно это было актуально). Все взаимодействие с ботом сводилось к грамотному использованию инструментов самого мессенджера. Возможности ручного ввода команд мы отключили совсем. Вот, кстати, демо-видео бота: https://youtu.be/1xMXEq_Svj8

— Вы стали победителем хакатона. Как дальше развивались события?

— Мы узнали одну очень полезную вещь – как оказалось, правообладателями бота остались мы сами, что меня несколько удивило даже. Я думал, что любой хакатон это, грубо говоря, обмен идеи, рожденной в командном брейншторме, на ценный приз. Но я перечитал соглашение и правила участия и ничего подобного не нашел. Так что другим участникам хакатонов, которые переживают за то, что придется передавать права на свои разработки, хочу сказать, что нет, далеко не факт, что вас обяжут это делать. На хакатоне VirusHack можно было даже код хранить в приватных репозиториях, а одному из членов жюри просто предоставить временный доступ для вынесения решения. В любом случае перед хакатоном всегда читайте документы об участие, чтобы в дальнейшем не было неожиданностей.

Кстати, наш код мы решили оставить открытым: https://github.com/airaketa/egdbag-bot. «Форкайте» на здоровье.
После хакатона уже по своей инициативе мы подготовили порт бота под API Telegram на случай второй волны пандемии коронавируса. Но лучше пусть этот проект навсегда останется в приватных репозиториях.

Сейчас мы думаем над тем, чтобы адаптировать функционал бота под текущую ситуацию, когда режим самоизоляции снят. Например, для поиска фитнес-центров, ресторанов и других городских объектов. Члены команды ICQ New не против «захостить» на своих мощностях и обновленную версию бота.

— Стоит ли программистам участвовать в хакатонах? Что, по Вашему мнению, они могут дать участникам и победителям?

— Однозначно стоит. Это крутой опыт — за пару дней с нуля выполнить прикладную задачу, которую можно затем обсудить с экспертами. Плюс это возможность оценить свои навыки и «скиллы» членов команды на реальном двух-трехдневном марафоне. Также это нетворкинг. В любой сфере, особенно в IT, это очень важный аспект развития, как мне кажется. Можно найти новых полезных тебе людей, пообщаться с ними, посмотреть их проекты. Кроме того, занимаясь на основном месте работы только разработкой, ты можешь попробовать себя на хакатоне в новой роли, например, «продукт-оунера», «тим-лида» или ином амплуа. Но а для победителя – это возможность успешного сотрудничества с топовыми компаниями, помощь в раскрутке своей идеи. Существует множество случаев, когда из хакатонов вырастали масштабные проекты.

— В августе стартует прием заявок на новый хакатон для решения задач города «Лидеры цифровой трансформации». Его победители получат солидное вознаграждение. Будет ли Ваша команда участвовать в нем? Как будете готовиться? Если победите, на что потратите денежный приз?

— Для меня, как и для остальных участников команды, главной целью участия в хакатоне является возможность разработать прототип продукта в рамках интересной для нас области.
Мы получаем опыт коллективной разработки и хороший проект в портфолио, сталкиваемся с интересными и сложными задачами. Конечно же, мы хотим выиграть. Однако мы не нацелены на получение именно денежного приза. Если проект будет приносить пользу – это и будет нашей победой.

Для подготовки к конкурсу «Лидеры цифровой трансформации» мы попытаемся расширить состав команды: в предыдущем хакатоне нас было трое и, честно говоря, рук просто не хватало. Кроме того, мы решим вопрос с установленным ПО, чтобы у всех участников команды до начала соревнования был требуемый набор программ (как показал опыт, огромное количество времени уходит именно на разрешение проблем с синхронизацией ПО).

Если все же удастся получить приз, то потратим деньги на PS5 и засядем по домам на пару недель. Шутка! Конечно же, мы понимаем, что денежный приз – это, прежде всего, финансовая помощь для дальнейшего развития проекта. Хостинг, виртуальные машины и так далее – это часть того, на что будут распределены финансы.