DevRaid: я устал ждать ответа от HR‑ботов и сделал платформу, где найм — это RPG

Привет, Хабр. Расскажу про проект, который делал последние несколько месяцев. Это не очередная «убийца HH» и не «революция в рекрутинге». Это попытка решить одну конкретную проблему, которая бесит меня лично.
Живая ссылка: https://devraid.ru
Как я к этому пришёл
Я отправлял резюме. Много. Разным компаниям, на разные позиции. И каждый раз получал одно и то же:
Ответ через две недели: «К сожалению, мы выбрали другого кандидата».
Или тишину.
Или автоответ от HR‑бота, который даже не открыл мой GitHub.
При этом в моём GitHub лежали реальные проекты. Собранные, работающие, с тестами. Но никто не собирался их запускать, чтобы это проверить. HR смотрит на «опыт 3+ года», тимлид смотрит 30 секунд на резюме. Всё решает не то, что ты умеешь, а то, как ты упаковал резюме.
С другой стороны — я сам был по эту сторону баррикад, когда искал людей. Читаешь 200 резюме, из них 190 пишут «уверенное владение React». И как понять, кто реально умеет, а кто просто видео посмотрел?
Идея пришла внезапно: что если найм — это не «отправить резюме и ждать», а игра?
Что такое DevRaid
Представь RPG. Только вместо мечей и магии — код.
Ты создаёшь героя. Выбираешь класс: Frontend Mage, Backend Warrior, DevOps Paladin, QA Rogue. Берёшь квест — например, «Создать интернет‑магазин». Пишешь код у себя в VS Code, как обычно. Пушишь в GitHub. Сдаёшь ссылку на платформу.
Дальше начинается интересное.
Платформа разбивает проверку на фазы. Первая — «Репозиторий открыт». Вторая — «README и структура». Третья — «Docker‑сборка». Четвёртая — «Тесты». Пятая — «ESLint и безопасность». Шестая — «AI‑ревью».
Каждая фаза — это удар по боссу. Если суммарный урон превышает порог — победа.
И вот тут ключевое отличие от всех остальных платформ: проверка настоящая.
Что происходит, когда ты сдаёшь код
Ты вставляешь ссылку на репозиторий и нажимаешь «Принять квест». На экране появляется шкала HP босса: 110 из 110.
Через 2 секунды:
text
⚔️ Репозиторий открыт -10 HPЕщё через секунду:
text
⚔️ README и структура -10 HPА потом платформа зависает на 2–3 минуты. Это не баг. В этот момент на сервере происходит вот что:
Скачивается твой репозиторий.
Запускается Docker‑контейнер с чистым Node.js 20.
Внутри —
npm installтвоих зависимостей.Потом
npm run build— реальная сборка твоего проекта.Если сборка упала — фаза провалена. И ты видишь в логе настоящий стек ошибки.
Потом:
text
⚔️ Сборка проекта -15 HPДальше — ESLint. Не «есть ли файл.eslintr», а настоящий прогон твоего кода через линтер. Он находит any, console.log, неиспользуемые переменные. Всё, что ты оставил, потому что «потом почищу».
Потом — Semgrep с правилами безопасности. Ищет хардкод ключей, SQL‑инъекции, небезопасные вызовы.
Потом — AI‑ревью. GPT читает 3 самых крупных файла и пишет замечания с номерами строк:
app/dashboard/page.tsx:42— Ошибки при загрузке продуктов не обрабатываются. Добавь try/catch и покажи пользователю сообщение.
Всё это стримится в интерфейс в реальном времени. Не «подождите, идёт проверка». Ты видишь, как каждая фаза проходит или проваливается, и почему.
Через 3–4 минуты — финальный отчёт. Босс повержен или выстоял. Если победа — лут, XP, уровень, артефакты. Как в WoW.
Почему это работает лучше резюме
Смотри, что получается.
Работодатель не читает «опыт 3 года, уверенное владение React». Он открывает публичный профиль героя и видит:
5 квестов пройдено
3 босса повержено
12 артефактов
Достижение «Чистый код» — ни одной ошибки ESLint
Победа над «Драконом Технического Долга» — покрыл legacy проект тестами
Победа над «Лордом Эндпоинтов» — написал REST API
И вот это подтверждено. Не «я умею», а «вот код, вот сборка, вот тесты, вот AI‑ревью». Ссылку на профиль можно кинуть в резюме — как портфолио, только проверяемое.
Разработчик не отправляет резюме в пустоту. Он проходит квесты и видит прогресс в реальном времени. У него есть мотивация — уровень, XP, лидерборд. Игра, которая даёт пользу.
Обе стороны экономят время. Не нужно ждать две недели, не нужно проходить пять раундов интервью, чтобы понять, что человек не умеет писать код. Всё видно сразу.
Что уже работает
Платформа живая. https://devraid.ru
7 квестов:
Создать интернет‑магазин (Frontend)
Настроить CI/CD (DevOps)
Написать REST API (Backend)
Покрыть legacy тестами (QA)
Оптимизировать запросы в БД (Backend)
Развернуть мониторинг (DevOps)
И кастомный квест от работодателя
Что есть у каждого героя:
Публичный профиль
/u/никнеймсо ссылкой на все победыАртефакты за победы над боссами (с редкостями: common / rare / epic / legendary)
Достижения — например, «Чистый код» за 0 ошибок ESLint или «Мультикласс» за победы в 4 разных квестах
Лидерборд с подиумом для топ-3
Приглашения от работодателей — шортлист, интервью, найм
Что есть у работодателя:
Создание квестов через админку
Список сдач с фильтрами
Воронка найма: шортлист → интервью → нанят / отказ
Заметки по каждому кандидату
Немного про технику (для тех, кто дочитал до сюда)
Под капотом:
Next.js 16 с App Router и Turbopack
Neon (serverless Postgres) + Drizzle ORM
Docker — реально запускает сборки и тесты в изолированных контейнерах
gpt-4o‑mini через ZvenoAI — AI‑ревью кода за 5–15 секунд
Nginx + systemd на VPS
Sentry для мониторинга ошибок
Let's Encrypt для HTTPS
Самые сложные места, где я набил шишки:
Docker на Windows — это боль. Bind‑mount папок работает через virtiofs и превращает npm install в 5-минутный ад. Решил отказом от монтирования: копирую файлы через docker cp, запускаю контейнер, читаю логи, удаляю. Скорость выросла в 10 раз.
Кэш npm между прогонами. Volume devraid-npm-cache монтируется в /root/.npm. Первый прогон качает зависимости за 2 минуты, второй — за 15 секунд.
Стриминг прогресса. Нельзя просто вернуть один большой JSON в конце — пользователь устанет ждать. Использую NDJSON через ReadableStream, каждая фаза отправляется отдельным сообщением. Nginx настроен с proxy_buffering off, чтобы данные шли сразу.
AI‑ревью с graceful fallback. Если ZvenoAI недоступен — фаза откатывается на эвристику и показывает пометку «AI недоступно, сработала проверка по шаблону». Лучше так, чем падать.
Что дальше
Честно про планы:
Каты — короткие задачи на 10–15 минут. Формат Codewars, но внутри нашей системы с XP и лутом. Для тех, кто не готов сразу сдавать большой проект.
Кэш AI‑ревью по SHA коммита. Сейчас один и тот же репозиторий проверяется заново каждый раз. Это стоит денег, а результат один. Кэш сэкономит 80–90% запросов.
Email‑уведомления. Работодатель поставил «Интервью» — герою пришло письмо. Сейчас узнаёт только когда сам зайдёт.
Мобильная адаптация. Профиль и доска квестов адаптированы. Админка работодателя — не полностью.
Честно про проект
Это прототип. Не «запуск стартапа», не «убийца HH». Проект на стадии беты, местами с костылями и недоделками. Но он работает end‑to‑end, и этого уже достаточно, чтобы показать идею.
Я не пытаюсь конкурировать с HH по количеству вакансий. Я делаю нишевую платформу для тех, кто устал от стандартного найма и хочет, чтобы код говорил сам за себя.
Что мне от вас нужно
Если вы разработчик — зайдите, попробуйте. Возьмите квест create-shop, сдайте любой публичный репозиторий (или форкните вот этот — он специально сделан для тестов). Первый прогон 3 минуты, дальше быстро.
Если вы работодатель — создайте компанию, опубликуйте квест. Даже если сейчас не ищете никого — попробуйте, как это выглядит со стороны заказчика.
Если вы просто читатель — напишите в комментариях, что думаете. Что бы вы добавили? Какие квесты были бы интересны? Чего не хватает для того, чтобы вы сами захотели попробовать?
Все баги, которые найдёте — правлю в тот же день. Все идеи — обсуждаю. Проект открыт к фидбеку на любой стадии.
Ссылка: https://devraid.ru
Первым 20, кто победит хотя бы одного босса — добавлю особый артефакт в профиль и упомяну в разделе «Первые герои». Просто чтобы сказать спасибо.
Спасибо, что дочитали.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.