Files
career-ops-vbleroy/reports/027-sakura-games-2026-07-07.md
T
redlineo d295c7f139
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s
init
2026-07-13 10:14:00 +03:00

139 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Оценка: Sakura Games — Fullstack Developer (Node.js/TypeScript и React/Next.js)
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit (стек роли — React/Next.js, а не Vue; более низкое совпадение архетипа)
**Балл:** 1.9/5
**URL:** https://hh.ru/vacancy/134915047
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack Developer (Vue + Node.js) — ближайший архетип кандидата, но требуемый стек — **React/Next.js**, не Vue; это существенно снижает fit по сравнению с типичным adjacent-случаем |
| Domain | Fullstack — интерактивное веб-приложение (скоринг, прогресс-трекинг, лидерборды, аналитика) для игровой/edutainment компании |
| Function | Build (полный цикл: frontend + лёгкий backend + деплой) |
| Seniority | 6+ лет опыта заявлено |
| Формат работы | Полностью удалённо, гибкий график без учёта рабочего времени |
| Размер команды | «Небольшие, дружелюбные scrum-команды» |
| Оформление | Проектная/контрактная работа — 3-6 месяцев с возможным продлением (не постоянная позиция) |
| Локация | Кипр (юридический адрес компании); роль удалённая — прямого конфликта с политикой кандидата «Тула, без переезда» нет, но остаётся открытым вопрос оформления для сотрудника из РФ (валюта, налоговый резидент, банковские ограничения — не указано в JD) |
| TL;DR | Проектная fullstack-роль с интересным продуктом (edutainment/игровой сервис) и удобным графиком, но требуемый стек — React/Next.js, а не Vue, что означает отсутствие прямого технического совпадения; заявленный стаж (6+ лет) намного превышает фактический (~1.7 года); зарплата не раскрыта; формат — временный контракт, а не постоянная позиция. |
**Vibe команды** (качественный сигнал, не входит в числовую оценку): JD явно упоминает «no bureaucracy or micromanagement» и «flexible scheduling without time tracking» — сильные сигналы автономии и минимума бюрократии. «Small, friendly scrum teams» указывает на плоскую структуру. Явных упоминаний менторства, код-ревью или грейдовой сетки роста нет — рекомендуется уточнить на собеседовании, так как это проектная, а не долгосрочная позиция, где карьерный рост может быть менее релевантен.
---
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| React, Next.js | **Пробел.** У кандидата нет React/Next.js в cv.md — весь production frontend-опыт на Vue 3 |
| TypeScript | Прямое совпадение: TypeScript в продакшене (ЕКОМ) |
| HTML/CSS | Прямое совпадение (раздел «Навыки») |
| Node.js (backend) | Частичное совпадение: Node.js/Express/MongoDB — уровень «ознакомительный» (см. cv.md, раздел «Навыки») + учебный проект ТулГУ (серверная часть на Node.js) + хакатон (Express, Node.js, MongoDB) — не production-уровень |
| PostgreSQL | **Пробел** — не упомянуто в cv.md |
| Figma | **Пробел** — не упомянуто напрямую, но кандидат самостоятельно занимается UI/UX-редизайном без выделенного дизайнера (косвенно смежный навык, не то же самое, что владение Figma) |
| Аналитика/интеграция аналитических платформ | **Пробел** — не упомянуто в cv.md |
| 6+ лет опыта | **Существенный пробел.** ~1.7 года коммерческого опыта у кандидата |
| Scrum-команда | Частичное совпадение: участие в спринт-планировании, работа с бэклогом (ЕКОМ) |
### Пробелы
1. **React/Next.js вместо Vue** — это hard blocker в буквальном смысле: у кандидата нет ни одного производственного или учебного проекта на React в cv.md. Не выдумывать переносимый опыт как эквивалент — фреймворки различаются достаточно, чтобы формально не засчитываться как «тот же стек».
- Смежный опыт? Частично — глубокое владение Vue 3 Composition API и понимание компонентной архитектуры/реактивности переносимо на уровне концепций (component-based thinking, state management, реактивность), но не на уровне синтаксиса/экосистемы React.
- План закрытия: честно заявить об отсутствии React-опыта, но подчеркнуть перенос концепций (Vue Composition API → React Hooks — концептуально близкие модели), и указать готовность к быстрому онбордингу при наличии времени на изучение (нет обещания мгновенной продуктивности).
2. **Node.js backend на уровне production** — пробел от «ознакомительного» до «production-ready» fullstack. Стратегия: явно указать реальный уровень (учебный проект + хакатон), не завышать до продакшн-опыта.
3. **6+ лет опыта** — как и в других вакансиях этого пакета, hard blocker для формального скрининга.
4. **PostgreSQL, аналитические платформы** — nice-to-have пробелы, не блокеры сами по себе, но накапливаются вместе с остальными пробелами.
---
## C) Уровень и стратегия
**Уровень в JD:** формально не назван грейд, но заявлено 6+ лет опыта — что соответствует Senior уровню по факту.
**Естественный уровень кандидата для архетипа Fullstack (Vue + Node):** adjacent/stretch — у кандидата нет полноценного fullstack-опыта на production-уровне, только Vue-фронтенд + ознакомительный backend.
**План «продать senior без обмана»:** Не рекомендуется пытаться продать кандидата как соответствующего этой роли на уровне «сеньор fullstack с React». Разрыв здесь двойной — и по стажу (6 лет vs 1.7), и по стеку (React/Next.js vs Vue). Единственная честная позиция — представить кандидата как «сильного Vue-фронтендера с ознакомительным Node-backend опытом, готового к обучению React при наличии времени на онбординг» — но это, по сути, не соответствует запросу проектной роли, где онбординг-время обычно ограничено (3-6 месяцев контракт).
**План «если понизят уровень»:** Учитывая проектный (не постоянный) формат контракта и двойной разрыв (стек + стаж), реалистичного сценария «понижения грейда» здесь скорее нет — это вопрос принципиального технического несоответствия, а не переговоров об уровне.
---
## D) Компенсация и спрос
**Зарплата в вакансии:** не указана. JD упоминает «stable USD-denominated salary» (стабильная зарплата в долларах США), но конкретных цифр нет.
**Рыночные данные (WebSearch, RU market и общий контекст, июль 2026):** Прямых данных по зарплатам для проектных fullstack-ролей (React/Next + Node) в игровой/edutainment индустрии с оплатой в USD и релокацией найма из Кипра для специалистов из РФ не найдено. Общий рыночный ориентир для fullstack (Node + React) в РФ — сопоставим или чуть выше чистого frontend (Middle: ~180 000–250 000 ₽ gross; для международных проектных контрактов в USD диапазон может существенно отличаться в любую сторону).
**Оценка (gross/net):** Невозможно применить формулу `net ≈ gross × 0.87` — нет базовой цифры. Также неясно, будет ли зарплата облагаться российским НДФЛ при контракте с кипрским работодателем, или потребует иного налогового режима (самозанятость, ИП, зарубежный контракт физлица) — это открытый вопрос с юридическими последствиями, который нужно прояснить до отклика.
**Вывод:** Отсутствие конкретной цифры — существенный пробел в данных для оценки. Компания использует WebSearch-неверифицируемое международное позиционирование («USD-denominated»), что типично для игровых студий, нанимающих специалистов из разных стран, но не позволяет сравнить предложение с таргетом кандидата (100 000–120 000+ ₽/мес на руки) без уточнения.
---
## E) План персонализации
Учитывая фундаментальное несоответствие стека (React/Next.js vs Vue-специализация кандидата) и проектный формат, глубокая персонализация CV под эту конкретную вакансию **не рекомендуется** — риск не оправдан относительно затраченного времени. Если кандидат всё же хочет откликнуться:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Акцент на переносимых fullstack-концепциях (компонентная архитектура, TypeScript, REST/WebSocket, Node.js/Express/MongoDB опыт) без преувеличения уровня | Честная подача снижает риск разочарования на техническом интервью |
| 2 | Сопроводительное письмо | — | Прямо обозначить отсутствие React-опыта и предложить объяснить, как концепции Vue Composition API переносятся на компонентное мышление в целом | Прозрачность — единственный этичный путь при таком уровне несоответствия |
---
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Fullstack-опыт (frontend + backend) | Хакатон TulaHack.Digital — «Книга рецептов» | Нужно было за ограниченное время сделать полноценное приложение с фильтрацией и личным кабинетом | Реализовать frontend (Vue 3, Ionic Capacitor) и backend (Express, Node.js, MongoDB) в сжатые сроки | Построила fullstack-приложение с нуля в команде на хакатоне | Работающий прототип с фильтрацией по ингредиентам и подсчётом калорий | Понимает базовый fullstack-цикл, но осознаёт разницу между хакатон-прототипом и production-fullstack-системой с реальной нагрузкой |
| 2 | Node.js/backend (учебный опыт) | Проект НИЦ «БиоХимТех» при ТулГУ | Нужен был программно-вычислительный комплекс с фронтендом и серверной частью | Реализовать фронтенд на Vue.js и часть серверной логики на Node.js | Проработала оба слоя приложения в течение 10 месяцев заказной разработки | Сдан рабочий комплекс контроля концентрации загрязняющих веществ | Ранний опыт показал интерес к полному циклу разработки, который затем сфокусировался на frontend в коммерческой работе |
| 3 | Компонентное мышление / архитектура (перенос на React, если потребуется) | RBAC-модель в ЕКОМ (Vue 3) | Не было модели разграничения прав между отделами | Спроектировать ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права | Внедрено разграничение по отделам | Архитектурное мышление (разделение ответственности, модели данных) переносимо между фреймворками — это стоит явно проговорить на интервью, если спросят про React |
| 4 | Автономная работа без микроменеджмента | Feature Branching + процессные инициативы | Хаотичные релизы, забытые приоритеты бэклога | Внедрить процесс и поднять вопрос о приоритизации перед руководством | Внедрила Git Flow, addressed backlog gaps proactively | Команда вернулась к целеполаганию на полгода/год, кандидат включена в спринт-планирование | Проактивность и самостоятельность в условиях слабой процессной структуры — прямое попадание в культуру «no micromanagement» |
**Рекомендуемый кейс:** Хакатон «Книга рецептов» — единственный проект кандидата, где фронтенд и бэкенд разрабатывались одновременно в сжатые сроки, ближе всего по духу к формату небольшой проектной fullstack-команды.
**Вопросы-ловушки:**
- «У вас нет React в резюме — как будете работать с Next.js?» → честно: «Действительно, весь production-опыт на Vue 3; концептуально компонентная модель и Composition API близки к React Hooks, но потребуется время на онбординг в конкретно эту экосистему — открыта обсудить, насколько это совместимо с проектными сроками».
- «Готовы к контракту 3-6 месяцев без гарантии продления?» — честный для себя вопрос кандидату перед откликом, не работодателю: стоит ли инвестировать время в неполное техническое совпадение ради временного контракта.
- «Зарплата в USD — есть ли вопросы по валюте/оформлению?» → уточнить у рекрутера механизм выплат и налоговые последствия для резидента РФ до обсуждения деталей роли.
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Опубликована 2026-07-07 (сегодня), кнопка отклика активна («Откликнуться» доступна) | Positive |
| Качество описания | Конкретные технические детали (React, Next.js, TypeScript, Node.js, PostgreSQL, Figma, аналитика), конкретное описание продукта (скоринг, прогресс-трекинг, лидерборды) — не шаблонный текст | Positive |
| Company Hiring Signals | WebSearch нашёл LinkedIn-профиль компании «Sakura Games» (edutainment-игры, 352 подписчика) — небольшая, но существующая компания. Более крупная «Sakura Game» (игровой паблишер) — судя по описанию, другая, не связанная компания; не путать. Никаких признаков сокращений или проблем с наймом не найдено, но и подробной информации о компании крайне мало | Neutral (малая компания, слабый онлайн-след — не редкость для нишевых edutainment-студий) |
| Reposting Detection | По `data/scan-history.tsv` — первое появление этой вакансии/URL в истории сканирования | Neutral |
| Role Market Context | Проектный/контрактный формат (3-6 месяцев с возможным продлением) — типичен для игровых студий, работающих над отдельными продуктами/фичами; не обязательно признак несерьёзности найма, но объективно более рискованный формат занятости, чем постоянная позиция | Neutral |
**Context Notes:** Компания выглядит небольшой и нишевой (edutainment-игры), с ограниченным онлайн-следом, что типично для малых стартапов такого профиля, а не обязательно признак фиктивности. Проектный формат контракта — это осознанный выбор бизнес-модели компании (вероятно, работа под конкретные игровые продукты/клиентов), а не red flag сам по себе, но кандидату стоит учитывать при сравнении с постоянными позициями.
---
## Извлечённые ключевые слова
Fullstack, Node.js, TypeScript, React, Next.js, PostgreSQL, Figma, аналитика, скоринг, лидерборды, прогресс-трекинг, scrum, удалённая работа, USD, гибкий график, edutainment, проектный контракт
---
## Итоговая рекомендация
**Балл 1.9/5 — существенно ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Настоятельно рекомендуется **не откликаться** на эту вакансию:
1. Требуемый стек — React/Next.js, а не Vue — у кандидата нет ни одного проекта на React в cv.md; это не типичный «adjacent fit» fullstack-разрыв, а прямое несоответствие основного фреймворка.
2. Заявленный стаж (6+ лет) намного превышает фактический опыт кандидата (~1.7 года).
3. Зарплата не раскрыта — невозможно сравнить с таргетом кандидата.
4. Формат — временный проектный контракт (3-6 месяцев), а не постоянная позиция — дополнительный фактор риска при и без того слабом техническом совпадении.
**Если кандидат всё же хочет попробовать:** только с полностью честной подачей отсутствия React-опыта и явным вопросом о реалистичности онбординга в сжатые сроки проектного контракта.