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

@@ -0,0 +1,133 @@
# Оценка: VK — Старший Frontend-разработчик (React, мессенджер-платформа)
**Дата:** 2026-07-07
**URL:** https://getmatch.ru/vacancies/34414-starshii-frontend-razrabotchik?s=offers
**Архетип:** Senior Frontend-разработчик (React) — вне архетипов кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node), серьёзный разрыв по стеку и уровню
**Балл:** 1.5/5
**Legitimacy:** Proceed with Caution (вакансия компании реальная, но конкретный листинг помечен как архивный/закрытый набор — см. Блок G)
**PDF:** не создан (балл < 3.0)
**Verification:** unconfirmed (batch mode, без Playwright) — однако сама страница getmatch.ru прямо содержит статус "archived / компания больше не набирает на эту позицию", это прямой сигнал закрытия, а не просто отсутствие проверки
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Senior Frontend-разработчик, React, разработка React-приложений внутри мессенджер-платформы (VK, Telegram, MAX) |
| Domain | Мессенджер / мини-приложения — SDK-интеграция, компонентные библиотеки, дизайн-системы |
| Function | Build + оптимизация производительности + интеграция SDK + кросс-командная работа |
| Seniority | **Senior**, явно указано "5+ лет" опыта |
| Формат работы | Удалённо (офис на Аэропорте указан как формальный адрес, по факту роль полностью дистанционная) |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | Тройной разрыв: (1) стек — роль целиком на React (hooks, context, жизненный цикл), у кандидата коммерческого React нет вовсе, весь архитектурный опыт на Vue 3; (2) уровень — явные "5+ лет", у кандидата ~1.5-2 года коммерческого опыта, естественный уровень Middle; (3) вакансия помечена как архивная / набор закрыт — отклик по этой ссылке технически невозможен или бессмысленен. |
**Локация — не блокер.** Роль полностью удалённая, соответствует политике кандидата (Тула, удалёнка предпочтительна, без переезда/командировок). Формальный адрес офиса (Аэропорт, Москва) не создаёт конфликта, поскольку JD явно описывает роль как remote-first.
**Vibe команды:** судя по формулировкам JD, упор на кросс-командное взаимодействие ("cross-team collaboration") и создание переиспользуемых компонентных библиотек, что может говорить о зрелых инженерных практиках. Явных упоминаний ownership/RFC-культуры, менторства или гибкого графика в тексте нет — недостаточно данных в JD, стоит уточнять на собеседовании (если бы оно было релевантно при текущем разрыве).
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| React (hooks, context, жизненный цикл), 5+ лет | **Отсутствует.** cv.md не упоминает React ни разу — весь фронтенд-опыт кандидата на Vue 3 (Composition API, Pinia, Vue Router) |
| "Непереносимость Vanilla JS" / глубокое ES6+ | Частично: JS/TS в cv.md присутствуют на общем уровне, но JD подразумевает React-специфичную экспертизу, а не общий JS |
| TypeScript | **Совпадение**: "JavaScript, TypeScript, HTML5/CSS3" в cv.md, использовался в проекте ЕКОМ (Vue 3 + TypeScript) |
| CSS-фреймворки, адаптация под дизайн-системы | **Частичное совпадение**: Tailwind CSS, shadcn/shadcn-vue — опыт с CSS-утилитами есть, но не с React-специфичными дизайн-системами |
| Vite | **Совпадение**: cv.md — "Vite" в разделе сборки и тулинга |
| Тестирование фронтенда | **Совпадение**: Vitest, Storybook, Playwright E2E (РМК) |
| Storybook (nice-to-have) | **Совпадение**: явно указан в cv.md |
| Разработка ботов/мини-приложений VK/Telegram/MAX | Отсутствует |
| Agentic-разработка (Claude Code, Codex) (nice-to-have) | Отсутствует в cv.md |
| Разработка JS SDK (nice-to-have) | Отсутствует |
| Принципы безопасности | **Косвенное совпадение**: профильное ИБ-образование, проектирование RBAC — но это авторизационная модель на уровне приложения, а не фронтенд-безопасность SPA/SDK в духе JD |
**Пробелы:**
1. **React как основной стек (hard blocker).** Роль на 100% про React-архитектуру внутри мессенджер-платформы. У кандидата нет ни одной строки коммерческого React в cv.md — весь опыт на Vue 3. Перенос концепций (компонентный подход, реактивность, state management) возможен, но JD прямо формулирует "непереносимость Vanilla JS", то есть ожидает глубокую, а не общую фронтенд-экспертизу именно в экосистеме React.
2. **Уровень — 5+ лет (hard blocker).** У кандидата ~1.5-2 года коммерческого опыта (Здравсервис с ноября 2024 + учебный проект ТулГУ 10 месяцев в 2022). Разрыв даже больше, чем в похожей вакансии VK (report 003, где требовалось "4+ года").
3. **Вакансия архивна (hard blocker для действия).** Страница getmatch.ru явно помечает позицию как закрытую для найма — отклик по этой ссылке не приведёт к результату независимо от степени соответствия.
4. **Nice-to-have навыки** (мини-приложения VK/Telegram/MAX, agentic-разработка, JS SDK) — отсутствуют, но это некритично при наличии более фундаментальных разрывов.
## C) Уровень и стратегия
1. **Уровень в JD** — явный Senior, 5+ лет опыта, самостоятельная архитектурная работа с React-компонентами и SDK. **Естественный уровень кандидата** — Middle, ~1.5-2 года опыта, вся архитектурная практика на Vue 3, а не React.
2. **План "продать senior без обмана" — неприменим.** Как и в похожей вакансии VK (report 003), попытка представить Vue-опыт как соответствие React Senior-роли была бы либо преувеличением (запрещено правилами `CLAUDE.md`/`AGENTS.md` — "keywords get reformulated, never fabricated"), либо гарантированным провалом на техническом интервью, где сразу проверят глубину React.
3. **План "если понизят уровень"** — неприменим: сама вакансия закрыта для набора, обсуждать понижение уровня офера нет смысла. Если кандидат заинтересована в будущем в подобных ролях у VK, реалистичный путь — сначала получить коммерческий React-опыт (например, через проект/смену стека внутри текущей компании), а не пытаться закрыть три разрыва (стек + уровень + доступность вакансии) одновременно.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| Зарплата в JD | "от 300 000 ₽/мес на руки" (net, явно указано как "на руки") |
| VK — медиана по IT-специалистам (Хабр Карьера, 2026) | ~324 000 ₽/мес |
| Senior React-разработчик, рынок РФ, 2026 | 270 000 - 410 000 ₽/мес; медиана senior-разработчиков по рынку — около 550 000 ₽/мес по отдельным оценкам |
| Middle React-разработчик, 2026 | ~320 000 ₽/мес |
| React vs Vue (рыночная разница) | React в среднем на 8-12% выше Vue по зарплате — рынок объективно выше платит за React-экспертизу, что усиливает мотивацию для кандидата развивать этот стек в перспективе, но не меняет текущий разрыв |
Источники: [career.habr.com/salaries](https://career.habr.com/salaries?skills%5B%5D=react-js&spec_aliases%5B%5D=frontend), [skillbox.ru — зарплаты фронтенд-разработчиков 2026](https://skillbox.ru/media/code/zarplaty-i-skilly-frontendrazrabotchikov-raznykh-greydov-issledovanie-skillbox-media/), [enigmai.ru — Frontend-зарплата 2026 (React/Vue/Angular)](https://enigmai.ru/salary/frontend/frontend-salary-2026/)
Указанная зарплата (300 000+ ₽ на руки) значительно выше цели кандидата (100 000-120 000+ ₽ на руки) — почти в 2.5-3 раза. Комп объективно очень привлекателен, но это senior-diapазон рынка, соответствующий требуемому уровню, а не Middle-диапазону кандидата. Привлекательная цифра не отменяет разрыва по стеку и уровню, а сама вакансия недоступна для отклика (см. Блок G).
**Компания и рынок труда:** WebSearch по VK показал историю массовых увольнений осенью 2024 года (несколько сотен сотрудников, компания официально это отрицала, источники — The Bell, Forbes, Meduza). Данных о новых сокращениях или заморозке найма в 2026 году не найдено. Эта информация двухлетней давности, прямого сигнала о текущем состоянии найма не даёт, но добавляет фон неопределённости при оценке стабильности крупных подразделений VK.
**Оформление:** не указано в JD.
## E) План персонализации
**Рекомендация: не готовить персонализацию CV/PDF для этой вакансии.** При балле 1.5/5, тройном разрыве (стек + уровень + недоступность вакансии) точечная подгонка резюме не решает фундаментального несоответствия. Вместо плана персонализации — roadmap на будущее (аналогично report 003, но с добавлением явного отсутствия открытой вакансии):
| # | Что нужно закрыть | Как | Срок (ориентировочно) |
|---|---|---|---|
| 1 | Коммерческий React | Проектный опыт или переход в команду на React-стек — оценить реалистичность внутри Здравсервис или на новом месте | 6-12 месяцев практики |
| 2 | 5+ лет опыта | Продолжать накапливать опыт в текущей роли | 3-3.5 года |
| 3 | Мониторинг открытых вакансий VK | Следить за team.vk.company напрямую, а не за пересылками в Telegram-каналах, чтобы не тратить время на архивные листинги | Постоянно |
## F) План собеседований
*(Приведено для полноты формата — не рекомендуется использовать для реального отклика: вакансия недоступна для набора, разрыв по стеку и уровню критический.)*
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Компонентные библиотеки / переиспользуемость | ЕКОМ — интерфейс списка заказов с 9 фильтрами | Разрозненные неудобные таблицы 1С для разных отделов | Спроектировать единый переиспользуемый интерфейс | Построила фильтруемый интерфейс, используется логистикой, клиентским отделом, техподдержкой и разработчиками | Один компонент заменил несколько разрозненных инструментов | Компонентный подход переносим между Vue и React на уровне архитектурного мышления, но не на уровне синтаксиса — честно обозначать эту границу |
| 2 | Оптимизация производительности | «Здесь Аптека» — фикс бага «Избранное» через постраничную загрузку | Раздел не открывался, все товары грузились одним запросом | Диагностировать причину и предложить решение | Реализовала постраничную загрузку в связке с бэкендом | Жалобы пользователей прекратились | Поняла ценность профилирования запроса перед оптимизацией UI-слоя |
| 3 | Работа с SDK / real-time интеграции | РМК — внедрение WebSocket-оповещений | Не было realtime-видимости статуса ~1200 аптек | Внедрить WSS-канал для оповещений | Реализовала передачу и статус прочтения в реальном времени | Видимость статуса подключения появилась впервые в компании | WebSocket-опыт переносим на SDK-интеграции мессенджера, но не заменяет глубину React |
**Рекомендуемый кейс:** не применимо при текущем балле и статусе вакансии.
**Вопросы-ловушки (если кандидат всё же решит откликнуться на аналогичную открытую вакансию VK ради опыта):**
- *"Расскажите про архитектуру React-компонента с использованием hooks и context"* — честного ответа с реальным коммерческим опытом нет.
- *"Как вы оптимизировали производительность React-приложения внутри мессенджера?"* — вне текущего опыта кандидата (весь опыт — Vue/Flutter).
## G) Легитимность вакансии
**Оценка: Proceed with Caution.**
1. **Статус вакансии (ключевой сигнал):** страница getmatch.ru явно указывает, что позиция помечена как **archived** — компания больше не набирает по этой вакансии. Это прямое, а не косвенное свидетельство закрытия (получено через WebFetch с самой страницы, не через WebSearch-сниппет), поэтому классифицируется как надёжный сигнал, несмотря на отсутствие Playwright-проверки в batch-режиме.
2. **Качество описания:** хорошее — конкретные технологии (React, TypeScript, ES6+, Vite, RESTful API), конкретные задачи (SDK-интеграция мессенджера, компонентные библиотеки под дизайн-систему), явная зарплата "на руки". Не выглядит как шаблонный/спам-текст.
3. **Компания:** VK — крупная, реальная, публично известная компания. Дополнительных признаков фиктивности или мошенничества не найдено.
4. **Репост/повторный листинг:** проверка `data/scan-history.tsv` не показала повторных записей именно этого URL (`getmatch.ru/vacancies/34414...`) за предыдущие сканы — добавлена впервые 2026-07-07. Есть другие отдельные вакансии VK в истории (VK MAX, "Старший Frontend-разработчик сообщества", "VK Видео") — это разные позиции, не репост этой конкретной.
5. **Найм-сигналы:** WebSearch показал историю массовых увольнений в VK осенью 2024 года (официально отрицается компанией) — фон неопределённости, но устаревший (почти 2 года) и не специфичный для этой команды/продукта.
Итог: компания легитимна, описание качественное, но конкретный листинг закрыт для набора — источник (Telegram-канал с пересылкой вакансий) переслал неактуальную/архивную ссылку. Не классифицируется как "Suspicious" (нет признаков мошенничества), но и не "High Confidence", поскольку по факту откликнуться невозможно.
---
## Извлечённые ключевые слова
React, TypeScript, JavaScript ES6+, hooks, context, жизненный цикл компонентов, state management, RESTful API, Vite, CSS-фреймворки, дизайн-система, компонентная библиотека, оптимизация производительности, дебаггинг, кросс-командное взаимодействие, мессенджер, SDK-интеграция, тестирование фронтенда, безопасность фронтенда, Storybook, мини-приложения
---
## Cover Letter Draft
> Draft generated at evaluation time. **Внимание: балл 1.5/5 — тройной разрыв (React vs Vue, Senior/5+ лет vs фактический Middle/~1.5-2 года, и вакансия помечена как архивная/закрытая для набора). Настоятельно не рекомендуется откликаться на эту вакансию.** Раздел ниже приведён только для полноты формата отчёта.
**Gaps flagged:**
- **React (критично):** ядро роли — React-архитектура внутри мессенджер-платформы; у кандидата нет коммерческого React, весь опыт на Vue 3.
- **Уровень (критично):** JD требует 5+ лет и самостоятельную архитектурную ответственность; у кандидата ~1.5-2 года, уровень Middle.
- **Доступность вакансии (критично):** листинг помечен как archived — отклик по этой ссылке не приведёт к результату.
- **Локация:** не блокер — роль полностью удалённая, соответствует политике кандидата.
**JD keywords to mirror** *(для справки, не рекомендуется использовать активно при текущем разрыве)*
React, hooks, context, TypeScript, SDK-интеграция, оптимизация производительности, компонентная библиотека