Skip to content

Latest commit

 

History

History
304 lines (231 loc) · 15.4 KB

File metadata and controls

304 lines (231 loc) · 15.4 KB

Job Interview Runner — Техническое Задание

Концепция: браузерная инди-игра (endless runner) про IT-собеседования в 2026. Хайп-механик: шаринг скоринговой карточки в Twitter/Reddit/LinkedIn → вход в глобальный leaderboard. Эмоциональный якорь: «200 кандидатов на место, пройди собесы быстрее всех и получи оффер».


1. High-Level Описание

Жанр: Endless runner (2D, side-scroll, top-down или 3/4 view) + QTE-вставки на собеседованиях.

Игрок: выбирает роль при старте (HR, Backend Dev, Frontend Dev, QA, DevOps, Data Scientist, PM, Designer) — у каждой свой стартовый скилл-сет и свой набор мемных собеседований.

Геймплей: бежишь по «карьерной лестнице», уворачиваясь от багов, дедлайнов, выгорания и неадекватных задач. Через каждые N секунд (или метров) — экран собеседования: отвечаешь на вопросы, выбираешь ответы, проходишь QTE на кодинг-челлендже.

Цель: пройти все уровни собесов и получить offer letter. Финальный скоринг = время + правильные ответы + бонусы за стрик без ошибок.

Шаринг: на финише — карточка-скрин (как Wordle): «Я получил оффер в Google за 3:47, обойди меня» → share в Twitter/Reddit/LinkedIn → ссылка ведёт на игру + показывает глобальный leaderboard.


2. Целевая Аудитория и Почему Зайдёт

  • IT-специалисты 25-45 лет — все проходили этот ад, боль универсальная
  • Рынок 2026: 200 кандидатов на место, массовые сокращения, ИИ заменяет junior'ов, требования растут
  • Психологический посыл: «спустить пары» через мем и black humor, не через жалобы
  • Социальная мотивация: каждый хочет доказать, что он быстрее/умнее других

3. Игровые Роли (8 стартовых)

Роль Стартовый бонус Мемная фраза при старте
HR Видит подсказки в диалогах «У меня 500 откликов, и я сама их читаю»
Backend Dev +30% к скорости «А у нас микросервисы на 500 сервисов»
Frontend Dev Удвоенные бонусы за UI-квесты «Pixel-perfect? В 2026-м?»
QA Иммунитет к багам на первом уровне «А я баг нашла в твоём резюме»
DevOps Регенерация выносливости «K8s упал, но не я»
Data Scientist Бонус к Data-квестам «Это не bias, это фича»
PM Видит roadmap уровней заранее «Спринт на 2 недели, ща будет»
Designer Бонус к визуальным QTE «Я не буду это пиксель-пиксель править»

4. Уровни Собеседований (5 этапов, нарастающая сложность)

Уровень 1: HR-Screen

  • Вопросы: «Почему вы ушли с прошлой работы?» (5 вариантов, 1 правильный — не токсичный)
  • QTE: листать резюме (стрелки ←/→), найди опечатку за 3 сек
  • Мем: «Мы вам перезвоним» (никогда не перезвонят)

Уровень 2: Технический скрининг

  • Вопросы: базовые по стеку роли (множественный выбор)
  • QTE: быстро напечатать git commit -m "fix" (опечатки = -score)
  • Мем: «А почему в резюме 14 мест работы за 10 лет?»

Уровень 3: Live Coding

  • QTE: мини-LeetCode задача (Easy уровень, 60 сек)
    • Написать функцию reverse string
    • Найти дубль в массиве
    • FizzBuzz
  • Мем: «У нас whiteboard-интервью, маркер есть свой»

Уровень 4: System Design

  • Вопросы: «Как бы вы спроектировали Twitter?» (варианты компонентов)
  • QTE: расставить кубики (сервисы) в правильном порядке
  • Мем: «А давайте начнём с того, как работает интернет»

Уровень 5: Final + Offer

  • Культурный fit: «Вы готовы к переработкам?»
  • QTE: подписать оффер (mouse-only, быстро)
  • Финал: анимация получения оффера, генерация карточки

5. Беговые Механики (между уровнями)

Препятствия (уклонения):

  • 🐛 Баг (нужно прыгнуть)
  • 📅 Дедлайн (нужно присесть)
  • 💼 Токсичный менеджер (нужно отпрыгнуть в сторону)
  • 🔥 Выгорание (медленно ползёт, нельзя касаться)
  • 🤖 ИИ-рекрутер (стреляет авто-отказами)

Бонусы (собираемые):

  • ☕ Кофе (+скорость на 3 сек)
  • 💰 Зарплата (мелочь, +1 очко)
  • 🏆 Рекомендация (+иммунитет)
  • 📚 Курс на Coursera (мемный — рандомно -5 очков)
  • 🎯 Реферал (×2 очки на следующем уровне)

Расходники:

  • ❤️ Выносливость (3 жизни, теряются от багов/выгорания)
  • ⚡ Концентрация (нужна для QTE, уменьшается со временем)

Управление:

  • ↑/Space — прыжок
  • ↓ — присед
  • ←/→ — переключение полосы
  • Любая клавиша / клик — QTE

6. Скоринг и Финальная Карточка

Формула скоринга:

Score = (time_bonus) + (correct_answers × 100) + (streak_bonus) + (role_bonus) - (mistakes × 50)

Карточка шаринга (генерируется как PNG на canvas):

┌────────────────────────────┐
│  💼 JOB OFFER ACQUIRED     │
│                            │
│  Role: Backend Developer   │
│  Company: FAANG-tier       │
│  Time: 3:47                │
│  Score: 2840               │
│  Streak: 12 perfect        │
│                            │
│  joboffer.run              │
│  [QR code → leaderboard]   │
└────────────────────────────┘

Текст для Twitter (копируется в буфер):

«Я прошёл 5 собесов за 3:47 и получил оффер. Сможешь быстрее? 🎮 joboffer.run #IT #InterviewHell #2026»


7. Глобальный Leaderboard

Бэкенд (Supabase или Firebase free tier):

Таблица scores:

  • id (uuid)
  • player_name (text, вводится при шаринге, опционально)
  • role (text)
  • time_seconds (int)
  • score (int)
  • created_at (timestamp)
  • country (text, по IP через Cloudflare)

Views:

  • Top-100 за всё время
  • Top-100 за неделю
  • Top-100 по каждой роли
  • «Personal best» с session-id в localStorage

Anti-cheat:

  • Скоринг подписывается HMAC на клиенте
  • Аномальные значения (score > 5000 или time < 60 сек) → флаг модерации

8. Технический Скоуп

MVP (что нужно для запуска за 2-3 недели):

Frontend

  • Стек: Vanilla JS + HTML5 Canvas (для скорости и простоты деплоя)
  • Альтернатива: React + Phaser 3 (если хотим красивее и быстрее в разработке геймплея)
  • Сборка: Vite, single-page app
  • Деплой: Vercel / Netlify / GitHub Pages

Backend

  • Supabase (Postgres + Auth + Realtime) — leaderboard
  • Cloudflare Workers — генерация OG-image для шаринга (опционально)
  • Plausible / Umami — простая аналитика

Ассеты

  • Спрайты: Kenney CC0 pack + свои пиксельные (8-bit/16-bit стиль)
  • Звук: freesound.org CC0 — пиканье, успех, fail
  • Шрифт: Press Start 2P (Google Fonts) для олдскульного feel

Тестирование

  • Jest / Vitest для логики скоринга
  • Cypress / Playwright для E2E (1 happy path)
  • Manual QA на 5 устройствах

9. Метрики Успеха (KPI на первый месяц)

  • DAU: 1000+ уникальных игроков в день
  • Шаринг-конверсия: 5%+ финишёров нажимают «Share»
  • Twitter impressions: 50K+ за счёт вирального шаринга
  • Avg session: 2-4 попытки (реиграбельность)
  • Leaderboard retention: 20%+ игроков возвращаются побить рекорд

10. TODO List для Deep Agent (по приоритетам)

Phase 0: Setup (День 1)

  • Инициализировать репозиторий (Vite + Vanilla JS или React)
  • Настроить ESLint, Prettier, базовый CI (GitHub Actions)
  • Создать структуру папок: src/, assets/, tests/, docs/
  • Сделать первый коммит

Phase 1: Core Runner (Дни 2-4)

  • Game loop (60 FPS, requestAnimationFrame)
  • Player sprite + анимация бега
  • Background parallax (3 слоя, офис-стайл)
  • Управление: прыжок, присед, переключение полос
  • Генерация препятствий (seeded random для воспроизводимости)
  • Коллизии и Game Over

Phase 2: Уровни собеседований (Дни 5-7)

  • Стейт-машина: RUNNINGINTERVIEWRESULTRUNNING
  • 5 экранов собесов (QTE + вопросы)
  • Контент: 20+ вопросов на роль (минимум 3 роли в MVP)
  • UI: диалоговые боксы, кнопки выбора, таймер

Phase 3: Скоринг и Карточка (Дни 8-9)

  • Расчёт скоринга (формула выше)
  • Canvas-генерация PNG-карточки
  • Кнопка «Share to Twitter» (web intent URL)
  • Кнопка «Copy to clipboard»

Phase 4: Leaderboard (Дни 10-11)

  • Supabase schema + RLS policies
  • POST score endpoint
  • GET top-100 endpoint
  • UI leaderboard (модалка, табы «All time / Week / My role»)
  • LocalStorage session-id

Phase 5: Роли (Дни 12-13)

  • 8 ролей с уникальными бонусами
  • Экран выбора роли при старте
  • Контент: 3+ уникальных вопроса на роль

Phase 6: Polish (Дни 14-16)

  • Звук и музыка (Chiptune на Web Audio API)
  • Анимации (прыжок, смерть, успех)
  • Мобильный responsive (touch controls)
  • SEO: meta-tags, og-image
  • 404 / 500 страницы

Phase 7: Launch Prep (Дни 17-18)

  • Landing page (1 экран, CTA «Play»)
  • Demo GIF для Twitter
  • README с инструкцией
  • Post в Reddit (r/programming, r/ITCareerQuestions)
  • Twitter thread с демкой

Phase 8: Post-Launch (Дни 19+)

  • Hotjar / Plausible аналитика поведения
  • A/B тест карточки шаринга
  • Сезонные ивенты (например, «Чёрная пятница: офферы в 2 раза чаще»)
  • Community levels (UGenerated контент)

11. Референсы и Вдохновение

  • Wordle — модель шаринга карточки (главный инсайт)
  • Doodle Jump / Temple Run — беговые механики
  • Papers, Please — диалоговые QTE
  • The Interview (YouTube sketch) — мем-вайб
  • r/cscareerquestions — контент для вопросов (мемы и реальные кейсы)
  • LeetCode — QTE на кодинг

12. Риски и Митигация

Риск Вероятность Митигация
Забанит Twitter за «спам-шаринг» Средняя Делать web intent (не автопубликация), оставлять на пользователя
Забанит Reddit за низкокачественный пост Средняя Лучший контент — сам геймплей, в посте — видео + ссылка
Игроки заспидранят и сломают скоринг Высокая HMAC + серверная валидация + rate limit
Не взлетит в первый месяц Высокая Бюджет на буст в Hacker News / Product Hunt как fallback
Утечка кода / DDoS Низкая Cloudflare proxy, Supabase RLS

13. Что Нужно от Тебя (Victor)

  • Подтвердить стек: Vanilla JS / Phaser / React? (предлагаю Phaser 3 + Vanilla JS — оптимальный баланс скорости разработки и качества)
  • Подтвердить скоуп MVP: все 8 ролей в первой версии или только 3 (Backend, Frontend, QA) для скорости?
  • Домен: купить joboffer.run / interviewrunner.com / использовать GitHub Pages?
  • Бюджет на буст: 0 / минимальный ($50 на HN) / нормальный ($500 на Product Hunt + Twitter ads)?

14. Definition of Done для MVP

  1. ✅ Игрок может выбрать роль
  2. ✅ Пробежать минимум 3 уровня собесов
  3. ✅ Получить скоринговую карточку
  4. ✅ Расшарить в Twitter (web intent работает)
  5. ✅ Попасть в leaderboard
  6. ✅ Игра работает в Chrome/Firefox/Safari (desktop + mobile)
  7. ✅ Landing page объясняет что это и зачем
  8. ✅ Деплой на публичный URL

Готов запускать? Deep agent может стартовать с Phase 0 (Setup) сразу после твоего «го» 🚀