Backend Auction Challenge
О конкурсе
Мы запускаем конкурс для backend-разработчиков с призовым фондом $30,000.
Но это не обычный конкурс на скорость или количество кода. Мы ищем инженеров, которые умеют думать как продуктологи: разбираться в реальных системах, принимать решения при неполной информации и писать надёжный код.
Почему такой формат
В реальной работе редко бывает идеальное ТЗ. Чаще приходится:
- изучать существующий продукт,
- самостоятельно формулировать правила,
- принимать решения там, где нет однозначного ответа.
Именно это мы и хотим проверить.
Задача
Вам нужно изучить, как работают Telegram Gift Auctions, и реализовать аналогичную механику аукциона цифровых товаров.
Мы намеренно не даём подробного технического задания. Часть конкурса — самостоятельно понять, как устроен продукт.
Что такое Telegram Gift Auctions
Telegram проводит аукционы на лимитированные цифровые подарки. Это не классический аукцион с одним дедлайном, а многораундовая система, где:
- аукцион состоит из нескольких раундов,
- в каждом раунде часть участников получает товар,
- остальные продолжают участие в следующих раундах,
- есть механизмы против «снайперских» ставок в последнюю секунду.
Ваша задача — разобраться в деталях этой механики и воспроизвести её.
Что нужно сделать
1. Анализ продукта
Изучите, как работают Telegram-аукционы. Вам нужно понять:
- как устроены раунды и тайминги,
- как работают ставки и ранжирование,
- как определяются победители в каждом раунде,
- что происходит с деньгами и ставками,
- как обрабатываются пограничные случаи.
Зафиксируйте своё понимание в README или отдельном spec-документе. Там, где поведение не очевидно, явно укажите свои допущения.
2. Реализация backend
Реализуйте серверную логику аукциона:
- создание аукциона с параметрами,
- управление раундами (старт, завершение, переход),
- размещение и повышение ставок,
- ранжирование участников,
- определение победителей,
- корректная работа с балансами и возвратами.
- конкурентность (одновременные запросы),
- финансовая корректность (деньги не теряются и не дублируются),
- устойчивость к edge-cases.
3. Минимальный UI
Сделайте простой интерфейс-сайт, достаточный для демонстрации работы:
- создание аукциона (без картинок),
- участие в аукционе (ставки),
- ставки от ботов, чтобы видеть живой аукцион,
- просмотр состояния и результатов,
- просмотр баланса.
Дизайн не оценивается. Нам важно увидеть, что логика работает.
4. Проверка под нагрузкой
Реализуйте способ проверить систему под конкурентной нагрузкой:
- боты или скрипты, которые делают ставки,
- одновременные запросы,
- ставки в конце раунда (проверка anti-sniping).
Покажите, что система ведёт себя корректно.
Технический стек
Если вы хотите использовать другие инструменты для вспомогательных задач (Redis, очереди и т.д.) — это допустимо, но основной стек должен быть таким.
Что мы оцениваем
Мы смотрим не на объём кода, а на качество мышления:
• Понимание продукта — насколько глубоко вы разобрались в механике
• Принятые решения — какие допущения сделали и почему
• Внимание к деталям — учтены ли нюансы и пограничные случаи
• Финансовая корректность — деньги не теряются, не дублируются, балансы сходятся
• Конкурентность — система работает при одновременных запросах
• Код — читаемость, структура, отсутствие явных проблем
Разрешено использовать ИИ и любые инструменты. Нам важен результат и ваш ход мыслей.
Формат сдачи
- GitHub-репозиторий с кодом
- README с описанием:
- Docker-compose или другой простой способ запустить проект локально
- Демо — видеозапись и работающий веб-сайт
Условия
- Призовой фонд: $30,000
- Старт: 7 января 2026, 23:00 (Dubai, UTC+4)
- Дедлайн: 23 января 2026, 23:00 (Dubai, UTC+4)
- Количество призовых мест: зависит от качества решений
Как участвовать
- Отправьте команду
/contestв @CryptoBot - Изучите задание
- Разберитесь в механике Telegram-аукционов
- Реализуйте решение
- Отправьте работу до дедлайна через бота
Главное
Мы ищем не «правильную реализацию по ТЗ», а backend-разработчиков, которые умеют думать как продуктовые инженеры.
Покажите, как вы разбираетесь в незнакомых системах, принимаете решения и пишете надёжный код.