Хабрахабр

Как мы сделали хакатон в поезде и что из этого получилось

Я Миша Клюев, DevRel в Авито. Всем привет! Внутри: рассказ о 56 часах кодинга в поезде, о том, что надо сделать, чтобы они состоялись, о том, какие проекты в итоге получились, и немного октябрьского моря. В этой статье расскажем вам про наш опыт организации и проведения необычного хакатона.

Осторожно, трафик.

Поначалу мы с командой не воспринимали её слишком серьёзно. Идея сделать хакатон в поезде пришла ко мне достаточно спонтанно уже больше года назад. Сразу скажу, что для нас процесс хакатона важнее результата: на выходе не ожидается новых бизнес-фич, которые уйдут в прод. К тому времени мы уже провели несколько внутренних хакатонов (о которых писали в статьях: 1, 2). Покодить для души — вот главный лозунг всех наших хакатонов, и каждый участник решает эту задачу по-своему. Для нас главное, чтобы все участники получили удовольствие от участия (тем не менее, какое-то количество проектов действительно потом уходит в прод). Вдохновлялся я примером фановых хакатонов wth.by, на одном из которых мне посчастливилось побывать в 2015 году.

Но просто смены декораций для полусотни разработчиков, которые большую часть времени проведут за ноутбуками, нам показалось мало. Нам давно хотелось вынести хакатон из офиса, чтобы обстановка добавляла ещё больше драйва и веселья. Быстрый поиск показал, что хакатоны в поезде в мире уже проводятся, в том числе на постсоветском пространстве, но отечественных аналогов мы не нашли. Тут то мы и поняли, что можно добавить движа в хакатон, если совместить его с путешествием, а поезд — самый очевидный для этого вид транспорта. Идея казалась несерьёзной и очень сложной в реализации: куда ехать, чтобы по пути была надежная связь, как заранее выкупить билеты в одном вагоне, пока не собраны паспортные данные участников, как проводить презентации проектов в поезде… Но летом этого года мы решили попробовать, и всё сложилось.

Отсутствие стабильного интернета — не баг, а фича, дополнительный челендж, который влиял на выбор технологий и требовал более тщательной подготовки, решили мы. У РЖД можно арендовать вагоны разного класса и прицеплять их к поездам в нужных направлениях. Первым вариантом был Екатеринбург, но потом решили, что из осенней Москвы лучше выбираться куда-нибудь на юг. Город прибытия выбирали просто по времени движения поезда, одни сутки в одну сторону.

Сам я очень люблю путешествовать на поездах, хакатон в поезде стал для меня мечтой, поэтому было крайне обидно его пропустить. В какой-то момент нам пришлось подвинуть даты проведения хакатона и чтобы поехать, мне пришлось бы в последний момент отказаться от выступлений на двух конференциях. Ну и конечно думать о том, чем удивить в следующий раз! Но теперь мне остаётся только передать слово моим коллегам, которые успешно организовали и провели этот уже легендарный (по крайней мере в Авито) хакатон и кусать локти, разглядывая фотки и читая отзывы участников.

Круто вытащить коллег из офиса и вместе с ними отправиться в путешествие, да ещё и поработать по дороге. imageВаля Михно, event-менеджер
Идея хакатона в поезде мне сразу понравилась. К тому же, мне всегда интересно браться за нестандартные задачи и проекты, которые до тебя никто не делал.
Хоть организовывать хакатон в поезде задача и интересная, но крайне непростая: трудно работать с железнодорожной монополией, получить гарантированное подтверждение регистрации от программистов, непонятно, как организовывать интернет в «слепых» зонах и составлять меню на два дня в плацкарте для пятидесяти незнакомых коллег.

Сначала мы планировали поездку в Екатеринбург по известной Транссибирской магистрали. Но, пожалуй, сложнее всего было выбрать направление нашего путешествия. Тогда появилась идея поехать на юг, к морю. Но в октябре в Екатеринбурге довольно холодно, да и варианты, как провести время пятидесяти уставшим программистам после суток в поезде с пользой, показались мне довольно банальными — всё это можно было и в Москве устроить. Всё складывалось как нельзя лучше: отправление в пятницу утром, время в пути чуть меньше суток, семь часов на море (идеально, чтобы закрыть пляжный сезон), а прибытие в Москву в воскресенье вечером. И тут моё внимание остановилось на маленьком курортном городе Анапа. В общем, бинго — едем в Анапу.

Все шло как по маслу и спокойно, но за месяц до поездки мне понадобилась информация по условиям вагона (количество и мощность розеток, наличие постельного белья и подстаканников и другие мелочи). С менеджером РЖД мы выбрали нужные нам поезда туда и обратно, забронировали вагон-плацкарт (он атмосфернее и лучше помогает сплотить команды), обсудили все детали оформления поездки и запустили договор на согласование с нашими юристами. И тут началось…

Оказалось, что наш новый комфортный плацкарт с фоток на сайте превратился в вагон 2018 года старого формата. Я поехала на встречу с менеджером РЖД в депо, чтобы сделать фотки нашего вагона. Условие было ультимативное. К тому же, даже его логисты РЖД не разрешили прицепить к изначально запланированному поезду «Москва – Анапа». Отказаться совсем мы не могли: вовсю шла регистрация на хакатон. Пришлось соглашаться на все условия и ехать другим поездом. Мы немного расстроились, но не отчаялись — мы ведь сами хотели устроить хардкор. Новый поезд едет до Анапы дольше, поэтому наше время в поезде увеличилось на шесть часов, а время на море сократилось до четырёх. Так и получилось.

А как мы ездили в депо с работниками РЖД на служебной машине со всеми припасами, вскрывали наш вагон среди белого дня, останется в моей памяти надолго…

Анонс и тематика

Расскажу здесь об этом лишь вкратце. imageВаля Михно, event-менеджер
Как мы анонсировали хакатон и придумывали тематику достойно отдельной истории. Люди придумали мощные паровые компьютеры, мощный паровой lisp, fortran и прочие бейсики с паскалями, но забыли придумать интернет». Мы почти сразу решили, что сделаем тематику «Безумного Макса» и описали это так: «Представьте, что мы мчимся в Анапу альтернативного будущего на футуристическом паровозе. Так себе перспектива. В общем решили устроить коллегам настоящий челлендж — кодить в хардкорных условиях в поезде, без нормального интернета, душа и привычного комфорта, да к тому же провести свои выходные с коллегами, которых и так видишь целую неделю, плечом к плечу. Одним словом, авантюра!

Регистрироваться нужно было сразу и наверняка, потому что на каждого выписывался именной билет. Мы разработали логотип, придумали дизайн всего мерча и постеров, сделали лендинг и открыли регистрацию. Конечно, мы об этом сказали, но переживали, что никто не захочет регистрироваться: никому не хочется подставлять коллег, если вдруг в последний момент появятся какие-то важные дела. Если участник в последний момент откажется — его место пропадёт. В первой волне регистрации вагон заполнился лишь наполовину. Но я верила, что авантюристы в нашей компании существуют. Тогда нам пришлось применять смекалку. И какое-то время счётчик регистраций не двигался.

Я сообщала о покупке высокоскоростных роутеров (интернет, всё-таки, будет), рассказывала о программе в Анапе с шашлыками от владельца гостиницы Акопа и постила оптимистичный прогноз погоды — шансы искупаться в октябре были высокие (и прогноз погоды меня не подвёл). Каждые пять дней мы постили новую информацию по этапу подготовки хакатона, что могло привлечь новых участников. Потом опубликовали номинации юбилейного хакатона. Любителей поездной романтики я привлекала фотками дошираков и историями создания этого идеального блюда для поезда. Наших инженеров номинации на участие вдохновили. Среди них были наши традиционные, например, «Кубок хакатона» и «Самый эпичный фейл», и те, которые мы придумали под этот необычный хакатон: «Самый древний стиль программирования» и «Лучший фронтец». В сумме все сработало! Ну и в конце мы даже разрешили приглашать матёрых хакатонщиков, бывших сотрудников Авито. Ровно за месяц до поездки наш вагон был полностью укомплектован, и все имена были внесены в договор.

Интернет

Выжать по полной возможности интернета на ходу и сделать его доступным для всех участников на всём пути — это стало для меня челленджем. imageВаля Михно, event-менеджер
Несмотря на то, что тематика хакатона была хардкорной, я очень хотела, чтобы интернет, всё-таки, был. Интересный опыт! Я несколько дней общалась с сетевиками в Авито, выбирала подходящие маршрутизаторы для нашего случая, рисовала план их размещения в вагоне, подбирала лучшего провайдера на пути «Москва – Анапа», изучала карты покрытия и мануалы роутеров. Что вышло из этого?

Закупили восемь сим-карт трёх главных российских операторов связи, шестнадцать Wi-Fi и GSM антенн. Мы закупили четыре 4G-роутера с высокоскоростным беспроводным соединением, которые позволяли использовать две сим-карты одновременно и переключаться на того провайдера, чей сигнал был сильнее. Сил потратили много, но это стоило того. Всё протестировали и создали карту сети с помощью нашего лётчика-испытателя и разработчика, написавшего приложение, где эту карту можно было создать. Скорости и покрытия хватало даже для того, чтобы наш фотограф мог закачать сотни фоток на облако и расшарить их хакатонщикам ещё в пути. Конечно, на пути были мёртвые зоны в полях и лесах, но получилось лучше, чем мы ожидали.

До этого я в хакатонах не участвовал, но давно планировал, и прочитав, что хакатон будет ещё и в поезде на пути в Анапу, я сразу понял, что такую возможность упускать нельзя. image
Сережа Вертепов, senior QA engineer, лётчик-испытатель интернета
Одним прекрасным утром я прочитал новость о том, что Авито планирует провести еще один хакатон. Меня сильно удивило, что никто не изъявил желания бесплатно съездить в Анапу, пусть и в не курортный сезон. На сайте хакатона было сообщение о том, что нужен доброволец, который заранее проедет по маршруту «Москва — Анапа — Москва», чтобы составить карту покрытия сети ну и в целом разведать обстановку.
«Хм, неплохо», — подумал я и сразу же написал о своем желании стать первопроходцем. Видимо, не все так любят курорты Краснодарского края, как я.

У меня было два айфона, приложение, которое трекает покрытие и координаты для построения дальнейшей карты (его написал наш lead iOS-engineer Влад Алексеев), а также Wi-Fi модем с двумя симками. 28 сентября я оказался в поезде. Особенно радовало то, что за все время у меня практически не было попутчиков. Поездка прошла замечательно. На мессенджеры, соцсети хватало. Удивило то, что у меня не было какого-то информационного голода: интернет хоть какой-то, да был. По крайней мере мне так казалось, да и карта, которую построило наше приложение говорила плюс-минус о том же. Не всегда, конечно, но большую часть времени. В общем, я проехался на поезде, пока один айфон трекал информацию с одной симки, а другой с модема с симками остальных операторов, провёл в Анапе одну ночь и вернулся. Кстати, заметил, что первую половину пути более устойчивое соединение было у одного оператора, а вот ближе к Краснодарскому краю у другого. Всё «путешествие» заняло 4 дня.

Условия для работы в поезде

Поэтому важным пунктом в организации хакатона было — создать комфортные условия для работы в плацкарте, чтобы разработчиков ничего не отвлекало творить и писать код. imageВаля Михно, event-менеджер
Хардкор хардкором, но угробить желудки пятидесяти инженеров или заразить их инфекцией не очень хотелось. Кроме этого, мы взяли с собой много разной еды (которая заняла целых две боковых полки вагона). Мы подготовили вэлком пак со всем необходимым: футболка, тапки, набор для сна (маска и беруши), дорожный зубной набор, пачка активированного угля, санитайзер, бутылка воды, батончик и пару каш быстрого приготовления. 75 пачек на 50 человек закончились быстро. Из еды было много разных закусок, но главным блюдом этой поездки был, конечно же, доширак. Это было гениально! Приз зрительских симпатий получил доширак с говядиной — ребята даже обменивали свои заначки на говяжий дошик. Повторюсь, мы же не хотели испортить желудки коллег. Более здоровая еда тоже была: мы обедали вагоне-ресторане, еду в котором мы заказали заранее и даже прописали поштучно в договоре. Вместо компота — сок. Обед был комплексный и как полагается: «первое», «второе» и салат. А вагон-ресторан был одиннадцатым. Забавно получилось, что наш вагон прицепили дополнительно, и он был шестнадцатый по порядку. В сумме за два приема пищи в пятницу и в воскресенье мы открыли и закрыли больше ста двадцати дверей. Каждый участник хакатона по пути на обед прошёл больше, чем через двадцать дверей, — проводники, отвечающие за свои вагоны, просили закрывать за собой двери. Санитайзер положили не зря.

«Челлендж комплитед!». В итоге благодаря грамотным анонсам мы успешно закрыли регистрацию, донесли всю важную информацию до участников, в поезде все были сытые, никто не отравился, ни один инженер не потерялся, и мы благополучно доехали полным составом обратно в Москву. Все остались довольны, отзывы были отличные, а один коллега сказал, что это был самый яркий момент за все время работы в Авито. В наш телеграм чат «Поезднутые на AvitoHack RailRoad» после поездки ребята ещё долго писали свои впечатления и фотки с поездки. Я считаю, это и есть успех!

Вот что у нас было с собой, чтобы его реализовать. Хакатон в поезде — проект масштабный.

  • 25 коробок с дошираками, молоком, чипсами и сухариками, кашами, фруктами и овощами, напитками, аптечкой и хакатономерчом.
  • 144 бутылки воды.
  • 134 банки разных газированных напитков.

И потратили почти 42 ГБ мобильного интернета.

Трудно писать об атмосфере, поэтому просто посмотрите фото.

Смотреть фото

Конечно, про все рассказать здесь не сможем, но вот немного подробностей. Мы привезли с собой 19 проектов.

Команда «Поездатые ребята» сделала навигатор для построения маршрута в дополненной реальности. Вдохновлялись проектом офисных карт, который был сделан на одном из предыдущих хакатонов. Сейчас навигатор может привести вас в любое место нашего плацкартного вагона.

Команда «4 туза» сделала приложение для аренды с механикой взаимного поиска. Как Тиндер, только для аренды. Объявления размещают и владельцы квартир, и арендаторы, а поиск происходит в обоих направлениях. Если оба полайкали, то открываются контакты.

У каждого есть ненужные вещи, от которых хочется избавиться, но даже их не получается продать на Авито. Коллеги из команды «Канапе» представили приложение Hlamingo, где можно обмениваться хламом.

Проект Super Blur — интеллектуальный блюр бэкграунда на фото автомобиля. В результате работы алгоритма сегментируется машина и её бэкграунд на фото, после этого применяется специальный градиентный блюр, для создания фото в стиле портрет.

Fratbots — игра на собственном игровом движке c ASCII-графикой и восьмибитной музыкой. Олды поймут! И графика, и музыка создавались на хакатоне.

А ещё мы сделали проект с бесплатными облачными вычислениями на Go, cache для данных мониторинга в СlickHouse (для снижения нагрузки на базу данных при частых одинаковых запросах), проект с непрерывным профилированием Go-приложений, интерпретатор языка программирования Prolog, ускорили кодогенерацию для нашего Авито iOS проекта, написали приложение для подбора сочетаний опенсорс шрифтов на реальном контенте, а не на Lorem Ipsum и многое-многое другое.

  • Вечеринки интровертов — это прекрасно! Я довольно замкнутый и опасался, что окажусь не в своей тарелке. Но я познакомился со всеми в вагоне и даже запомнил имена многих! Такое со мной впервые 🙂
  • И отдохнул от работы, и в море искупался, и с коллегами потусил, и на свободную тему код написал. 12/10 GOTY НА КОНЧИКАХ ПАЛЬЦЕВ. В общем, просто бомбически, мегакрутой формат и реализация.
  • Идея поезда на первый взгляд казалась странной, но когда я принял участие, то время в поездке летело незаметно и даже не хотелось расставаться по окончанию поездки. Песни под гитару, выезд на автобусе под саундтрек из GTA, фотографии…
  • Это было чудесно! Познакомиться с отличными ребятами в неформальной обстановке. Отзываться и помогать друг другу — что может быть ценнее в этой жизни?! А для всего остального — MasterCard… Море шуток, веселья, по крайней мере, в нашей замечательной команде, и конечно же, хардкорной разработки на Rust!!! Впервые в жизни побывал на море и сделал, наконец, йога-фотки на пляже! А под гитарку б вечно играл в такой теплой атмосфере!
  • Только проведя двое суток в поезде, став сильнее, очистив свой разум и отбросив всякую шелуху в виде интернета и бесконечного гугления, богомерзких индусских мануалов и стековерфлоу, используя забытые древние практики медитации над кодоми чтения исходников, специальной диеты и алкоголя ты понимаешь, что главное — это люди с которыми ты работаешь, что только они могут поддержать тебя в трудную минуту и разделить радость победы или терпкий вкус самого дешевого вискаря, купленного в не сезон в Анапе!
  • Самое яркое впечатление — это когда ночью поезд остановился где-то в глуши на станции. Вагон не дотянули до перрона. И мы выскакивали под звездами в темноте и тусили возле вагона. Забирались по насыпи наверх. А вокруг — темнота, звёзды и тусклый свет от вагона… Невероятно просто.
  • Очень позитивный сюр. Куча кодеров в ночи на холме перед поездом, море в октябре, сама по себе ситуация: приехать в Анапу на несколько часов, искупаться и поехать обратно. Отличнейшая музыка от дуэта флейта-гитара, сибирские байки от наших соседей по плацкарту. Запах дошика, перед которым никто не устоял. Бескрайние поля, городки, романтика путешествия, скок-скок через рельсы, тутух-тутух, тутух-тутух…

Мы попросили самого опытного хакатонщика нашей команды, pik4ez’а, составить памятку для тех, кто решит покодить в поезде. Если вы или ваши друзья вдруг захотят повторить такой опыт, не лишним будет поделиться нашим опытом. Ему слово.

imageДмитрий Белов, senior engineer, опытный хакатонщик

  • Будьте хорошими соседями. В поезде труднее найти абсолютно необитаемый уголок, в котором не будет никого, кроме вашей команды. Но ребята играли очень хорошо и не долго. В нашем случае в вагоне были и укулеле, и гитара, и флейта. Музыка не раздражала, а, наоборот, давала возможность собраться в музыкальном уголке, спеть пару песен и отдохнуть от программирования.

  • Не стоит включать его в меню. Алкоголь снижает продуктивность.

  • В нашем случае был современный вагон и достаточно розеток. Вопрос с зарядом устройств стоит решить заранее. Но на всякий случай многие брали с собой пауэр-банки.

  • На поезд опаздывать нельзя, к пересадкам нужно быть готовым и заранее собрать необходимые вещи. Приходится следить за таймингами. Помогают сохранённые памятки с расписанием и организаторы, по счастливой случайности едущие в том же вагоне.

  • Из не скоропортящегося можно сконструировать вполне приличное питание. Скоропорт не берём, разве что, на первый перекус.

  • В небольших количествах отлично заходят лапша быстрого приготовления и кофе три-в-одном. Но сколько кодера ни корми, а он всё равно дошик любит. Но полноценный обед очень нужен. С утра хороша каша быстрого приготовления. Вагон-ресторан может помочь.

  • Тапочки нужны.

  • Стараемся не заваливать стол, чтобы разместить на нём пару ноутов. Кодить лёжа на полке особо не получается.

  • Хакатон на колёсах посложнее перенести без сна, поэтому к ночи многие ложатся отдыхать. Ночью желательно вовсе не шуметь.

  • Очень полезно на станциях выходить размяться.

  • В поезде повышается вероятность услышать парочку новых историй даже от тех, с кем работаешь уже много лет.

  • Если видите море — купайтесь.

Мы спросили у ребят их впечатления от поездки и кодинга без интернета, какие программы пишут, где ещё можно проводить хакатоны и о чём мечтают программисты. Мы хотим передать наши эмоции от хакатона как можно лучше, поэтому ещё сняли и видео в поезде. А Дима Белов рассказал о своих первых хакатонах и в чём польза таких мероприятий.

Надеемся, вдохновили вас на что-то новое и интересное. Такими были наши впечатления и проекты. Обязательно ответим. Если интересны детали — спрашивайте про них в комментариях.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть