init
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

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

+138
View File
@@ -0,0 +1,138 @@
# Оценка: 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-опыта и явным вопросом о реалистичности онбординга в сжатые сроки проектного контракта.