«Подгнило что-то в Датском королевстве» — фраза до ужаса топорная, но, кажется, она как никогда точно описывает ситуацию, которая произошла со мной и моими корешами совсем недавно.

Если быть точнее — 25 октября 2025 года, на награждении одного из свежепроведённых хакатонов «Лидеры цифровой трансформации» (в простонародье — ЛЦТ).

«Самый масштабный в мире хакатон...»

Именно такими слоганами ещё недели две назад пестрели телеграм-каналы, паблики соответствующих тематик и сам сайт ЛЦТ.

Честно говоря, я не до конца понял, что именно организаторы вкладывали в понятие «масштабный».

Масштабный по призовым? По количеству участников?

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

Но, возможно, организаторы имели в виду «масштабный» в другом смысле —
в смысле масштабности абсурда при оценке проектов?

Ладно.

«Меньше слов...»

Историю попробую рассказать коротко.

Мы с ребятами участвовали в хакатоне, получили техническое задание, закрыли все его пункты, собрали рабочее решение — и… не заняли ничего.

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

Но все-таки, статья немного не о нас.

«Ну проиграли и проиграли, чего бубнить-то?»

Как кто-то написал в чате хакатона сразу после церемонии награждения:

«Проиграть не обидно. Обидно участвовать в фарсе.»

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

В призёрах оказались команды, у которых были весьма специфичные решения.

Что требовало ТЗ и что сделали победители?

Кому не лень читать

Ни много ни мало — полноценное production-ready решение под ключ.
Если коротко: нужно было написать парсер датасетов с информацией о полетах самолётов над территорией РФ.

Для этого предлагалось использовать их собственный датасет.
Вход в систему — через Keycloak с поддержкой SSO и системой ролей.
После авторизации пользователя должно было перекидывать на дашборды с аналитикой.

И вот тут начинался настоящий аттракцион — по ТЗ требовалось вывести целую гору различных графиков:

  • длительность полётов,

  • разбивку по регионам,

  • динамику по времени,

  • распределение по авиакомпаниям и т. д.

Что по бэку?

Бэкенд — FastAPI + PostgreSQL с различными индексами и шифрованием.
Для сбора метрик требовалось поднять полноценный ELK-стек + Grafana.
Всё это, разумеется, должно было крутиться на собственных серверах внутри Docker/Kubernetes с балансировкой трафика.

Плюс — CI/CD, да ещё и требование по SLA: 99.5 %.
(Честно говоря, это уже звучало как шутка. Как именно они собирались проверять SLA в условиях хакатона — непонятно.)

Идём дальше

Нужен был фронтенд на React — не просто интерфейс «для галочки», а полноценная визуализация всей этой аналитики.

Ну и, конечно, документация ко всему этому хозяйству.

tl dr

Орги требовали создания полноценного продакшен-решения с парсингом данных о полетах, авторизацией через SSO, аналитикой на дашборде, бэкендом на FastAPI, хранилищем на PostgreSQL, мониторингом через ELK/Grafana, шифрованием данных и фронтендом на React. Плюс обязательное CI/CD и SLA 99.5%. Короче, огромный стек технологий и реальная нагрузка на сервер.

В общем, ребята из комитета подготовили внушительное и сложное ТЗ.

Я даже не стал описывать всё до конца — потому что и этого достаточно, чтобы понять:
объём и стек были реально огромные.

Одна из страниц нашего сервиса по окончанию хакатона, как пример результата
Одна из страниц нашего сервиса по окончанию хакатона, как пример результата

А что там у победителей?

Ооо, вот и начинается самая интересная часть нашей статьи.

Предлагаю вам самим оценить всю степень абсурда, случившегося на награждении — именно из-за этого, собственно, и появилась эта статья.

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

Ну скажем так...

Призеры, по-настоящему «углубились в суть проблемы» (цитата взята из сообщения одного из участников команды призёров).

Они продемонстрировали презентацию в Figma. Когда же их попросили показать реальный продукт, то оказалось, что их реальный сайт не содержал и половины заявленного функционала из презентации.

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

Предлагаю вам оценить видео с финала, которое я прикрепляю чуть ниже. Для честности — я прикрепляю весь фрагмент их выступления.

Видео с выступления

Надо признать, презентация у ребят — огонь. Но что там с продуктом?
С 6-й минуты 20-ой секунды можно ознакомиться с подробностями.

Первый проверяющий говорит:

«В прошлый раз мы вам говорили, что на финале не должно быть нулей…»
(речь идёт о том, что у команды не было настоящих данных, а значит — не было работающего парсера, то есть ключевого функционала по ТЗ).

Второй проверяющий добавляет:

«Данные, которые мы вам дали, они должны быть здесь. В этом цель продукта.»

Проходит пять дней — и эти ребята занимают призовое место.

В принципе, занавес.

Как там дела у остальных призеров?

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

Однако и там всё оказалось далеко не идеально.

Второе место заняли ребята, у которых на демо во время финала демонстрировался чистый localhost — то есть ни о каком CI/CD, Docker, деплое или другой инфре вообще речи не шло.

Первое место выглядело солиднее, но и там нашлись несоответствия.
Например, команда не соблюла требования по выбранным технологиям для бэкенда — вместо FastAPI на Python использовали PHP, вместо Postgres — mysql и еще множество мелочей.


В итоге, разбирая все эти «полёты», остаётся главный вопрос:
как вообще формировалась финальная оценка и на основе чего?

А, да, ещё один момент. По словам нескольких участников, не вошедших в финал, их GitHub-репозитории даже не открывали — судя по логам. Оценка, похоже, шла только по презентации.

Пишем жалобы

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

Ответы были шаблонными, в духе:

«Ребята, понимаем ваше негодование, но отнеситесь с уважением к победителям»

или моё любимое:
«Организаторы выбирали проекты, исходя из своих бизнес-требований.»

Сообщение от админов
Скрин с тг канала участников 27-го октября
Скрин с тг канала участников 27-го октября

«Бизнес требования» говорите вы? «Включайте их тогда в техническое задание» — скажу вам я. Почему я сам должен гадать, что они от меня хотели видеть?! Очень удобно.

Особенно нелепо это звучало на фоне видеозаписи, где жюри прямо говорит, что проект победителей не выполнил ключевые условия ТЗ.

Быстро стало ясно, что админы — просто перехватчики инфы сверху, и мы пошли выше:
вышли напрямую на организаторов и представителей со стороны мэрии.

У одного из моих коллег оказался знакомый юрист, который помог составить официальное обращение, ссылаясь на конкретные пункты в регламенте и описывая нарушения.

Перечень нарушений

Согласно "Положение о конкурсе ЛЦТ"

5.12. Предварительная экспертиза прототипов и презентаций коллективов проводится в соответствии с критериями, утвержденными организатором, с целью отбора не более 10 лучших проектов коллективов по каждой задаче соревнования для участия в финальном этапе соревнования. 

5.14. Результаты предварительной экспертизы прототипов и презентаций утверждаются протоколом, подписанным председателем экспертной комиссии.

5.15. Протокол предварительной экспертизы прототипов публикуются на официальном сайте соревнования.

В нашем случае не были опубликованы в должном виде протоколы предварительной экспертизы прототипов и отсутствовала информация о критериях отбора в финальную часть конкурса.

5.26. По каждой задаче экспертная комиссия определят одного победителя и двух призеров на основании критериев оценки проектов, предусмотренных техническим заданием задачи, а также на основании следующих критериев:

- подход коллектива к решению задачи;

- техническая проработка решения;

- соответствие решения выбранной коллективом задачи;

- эффективность решения в рамках поставленной задачи;

- выступление на питче.

5.27. Каждый критерий, предусмотренный пунктом 5.26 настоящих Правил, оценивается по пятибалльной шкале от 1 до 5 баллов, где:

1 – очень низкий уровень;

2 – низкий уровень;

3 – средний уровень;

4 – высокий уровень;

5 – очень высокий уровень.

5.30. По итогам голосования организатор оформляет протокол решения экспертной комиссии, который подписывается председателем экспертной комиссии.

5.31. Информация об итогах соревнования размещается на официальном сайте соревнования в сроки согласно пункту 3.1 настоящего Положения.

В нашем случае при публикации финальных протоколов были нарушены сроки предписанные в п. 3.1 Положения  – до 26 октября включительно. Протоколы были опубликованы 27 октября.


Письмо было направлено десяти ответственным лицам на почту в 9 утра.

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

Какие итоги

Этот пост, скорее, в духе отзыва, чем жалобы (жалоба же сейчас передается другим людям). Чтобы люди понимали, с какими проблемами сталкиваются участники на ЛЦТ, и делали выводы.

Лично меня эта история сильно расстроила. Думаю, не только меня — многие мотивированные ребята, которые реально делали качественные прожекты, просто остались без внимания, а их работы — даже не были просмотрены.

Буду ли участвовать в ЛЦТ ещё раз? Ответ очевиден.

Когда ты с командой закрываешь все требования по продукту, в призёры запихивают людей без работающего решения, а на все вопросы отвечают в духе «Жюри так решило» — рекомендовать участие в ЛЦТ хакатоне кому-либо не могу.

Самое забавное: 20 октября, сразу после финала, капитан команды X (тех самых, кто занял 3 место с презентацией) написал мне с предложением «посотрудничать» и добавил в какое-то интересное сообщество в тг.

Скрин с переписки

Я ответил сухим «нет» — вернее, просто проигнорил, ну а дальше произошло то, что произошло.


Всем добра и продуктивного понедельника!

p.s. Имена участников и название их команды я намеренно опускал в статье, потому что, кмон, слишком много чести. Если интересно, вы можете ознакомиться с ними сами на главном сайте ЛЦТ в протоколах участников — Хакатон 2025 сентябрь: Задание 1.

Комментарии (5)


  1. slashfast
    10.11.2025 09:31

    400 тыс рублей за проект на фигме. Распил?


  1. exTvr
    10.11.2025 09:31

    ХаХатон.


  1. Gri-kos
    10.11.2025 09:31

    Видимо, зависит от трека. У нас была задача от города на тему "Редактор лидарных карт". Ситуация была противоположная. Чёткого тз не было). К тому же изначально предполагалось, что мы будем работать с уже предобработанными данными. Как оказалось позже, можно было воспользоваться сырыми данными. С ними, конечно, больше возни и есть свои подводные камни, но на выходе можно получить хорошие результаты. Чем и воспользовались топовые команды.

    По итогу все места на нашем треке выглядят логично. 1 место - люди с большим опытом работы в этой сфере. Плюс их решение сильно вышло за рамки тз (в лучшую сторону). 2 - команда из МФТИ с собственной лабораторией, которая занимается беспилотным транспортом на протяжении 5 лет. Ну и 3 место - мы, бедные студенты), которые решили сделать акцент не на автоматической обработке, а на инструментах.

    Мы, кстати, уже были научены горьким опытом, поэтому знали, что от презентации зависит далеко не 10 процентов, как обычно пишут в критериях оценки). Полтора дня было потрачено на вылизывание речи и презентации. В итоге вышло очень даже хорошо, особенно в сравнении с другими студенческими командами.

    Конечно, в честности результатов до конца мы уверены быть не можем) Потому что проверить, а правда ли над решениями топовых команд работали только заявленные лица, невозможно. Но это фундаментальная проблема такого формата проведения, а не конкретно этого хакатона.

    Жюри, кстати, активно тыкали решения команд. То есть оценка шла не только по презентации.

    Итог, всё зависит от того, кто организует трек.