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,147 @@
# Оценка: VK — Старший Frontend-разработчик сообщества (ВКонтакте)
**Дата:** 2026-07-06
**URL:** https://team.vk.company/vacancy/52033/
**Архетип:** Senior Frontend-разработчик (React) — не входит в архетипы кандидата, серьёзный разрыв по уровню
**Балл:** 1.8/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Senior Frontend-разработчик, React, архитектурная ответственность за платформу сообществ ВКонтакте |
| Domain | Высоконагруженная социальная платформа (до 125 млрд запросов к API в сутки, до 30 релизов в сутки) |
| Function | Build + архитектура + менторство + технические инициативы |
| Seniority | **Senior** (указано явно в JD: "более четырёх лет" frontend-разработки) |
| Формат работы | Москва или Санкт-Петербург (офис) · Комбинированный / Дистанционный. JD прямо пишет: "специалиста, который сможет посещать офис... и работать в комбинированном или дистанционном режиме" — удалёнка формально доступна, но формулировка предполагает готовность приезжать в офис |
| Размер команды | Не указан явно ("небольшая команда разработчиков", суперпрофессионалы) |
| Оформление | Не указано |
| TL;DR | Двойной разрыв: (1) требуемый уровень — Senior, 4+ года опыта, архитектурная ответственность и менторство — тогда как у кандидата ~2.5 года и уровень Middle; (2) требуемый стек — React, тогда как у кандидата коммерческого React нет вовсе. Локация формально не блокер (удалёнка упомянута), но пограничная (JD ожидает готовности приезжать в офис). |
**Локация — не жёсткий блокер, но требует уточнения.** В отличие от вакансии Яндекс Лавки, здесь явно перечислен формат "Комбинированный / Дистанционный", то есть чисто удалённый режим формально доступен. Однако фраза JD "специалиста, который сможет посещать офис в Москве или Санкт-Петербурге" сигнализирует, что компания рассчитывает на периодическую личную явку — это не то же самое, как "полностью удалённая роль без каких-либо условий". Кандидат не рассматривает командировки/переезд (`modes/_profile.md`). Поскольку JD прямо перечисляет "дистанционный" как отдельный принимаемый формат (а не только "комбинированный"), это не квалифицируется как жёсткий блокер по правилу оценки, но требует явного уточнения на первом созвоне: действительно ли доступен полностью удалённый трек без периодических визитов в офис.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Frontend-разработка более 4 лет | **Существенный разрыв.** Здравсервис (~20 мес) + ТулГУ/БиоХимТех (10 мес) ≈ 2.5 года совокупного опыта — почти вдвое меньше требуемых 4+ лет |
| JavaScript/TypeScript, HTML, CSS "отлично" | cv.md: "JavaScript, TypeScript, HTML5/CSS3" — формально присутствует, но JD подразумевает экспертный, а не рабочий уровень |
| Разработка веб-приложений на React и проектирование их архитектуры | **Отсутствует.** Весь архитектурный опыт кандидата — на Vue 3 (спроектировала фронтенд ЕКОМ с нуля, включая RBAC, роутинг, стор) и Flutter (Clean Architecture). React в cv.md не упомянут ни разу |
| Разбираться в большом количестве чужого кода | **Частичное совпадение**: РМК — legacy-проект, ~20 багов исправлено, включая сложный кейс с замыканием в чужом коде |
| Процессные и технические улучшения | **Совпадение**: Feature Branching, версионирование сборок, обучение коллеги, инициировала возврат к целеполаганию на полгода/год |
| Плюс: менторство, участие в найме | **Слабое частичное совпадение**: обучила одного коллегу системе версионирования — это не формальное менторство и не участие в найме |
| Плюс: mobx/effector | Отсутствует (кандидат работает с Pinia — Vue-экосистема) |
| Плюс: базовое знание PHP | Отсутствует в cv.md |
| Плюс: ведение сообщества в соцсети | Не упомянуто |
**Пробелы:**
1. **Уровень (hard blocker).** JD прямо требует "более четырёх лет" и архитектурную ответственность senior-уровня. У кандидата ~2.5 года и уровень Middle по всем архетипам в `config/profile.yml`. Подавать заявку на позицию с завышением уровня — прямое нарушение принципа "keywords get reformulated, never fabricated" из `CLAUDE.md`, и рискованно с этической точки зрения (тратит время и кандидата, и рекрутера).
2. **React как основной фреймворк архитектуры (hard blocker)** — та же проблема, что и в VK MAX, но здесь требования выше: не просто "знание React", а "проектировали архитектуру" на нём.
3. **Менторство/найм** — заявлено как плюс, у кандидата минимальный релевантный опыт (обучение одного коллеги).
4. **mobx/effector, PHP** — nice-to-have, отсутствуют, не критично.
## C) Уровень и стратегия
1. **Уровень в JD** — явный Senior (4+ года, архитектура, менторство, участие в найме). **Естественный уровень кандидата** — Middle. Разрыв в 2 ступени по факту опыта (senior обычно 4-6+ лет против её ~2.5).
2. **План "продать senior без обмана" — неприменим.** Честная оценка: заявленный уровень требует опыта, которого у кандидата пока нет, и стека (React), которого у неё нет вовсе. Попытка представить Middle-опыт на Vue как соответствие Senior-роли на React означала бы либо преувеличение (недопустимо по правилам `CLAUDE.md`), либо неизбежный провал на техническом интервью.
3. **План "если понизят уровень"** — в данном случае не про понижение оффера, а про то, стоит ли вообще претендовать. Рекомендация: **не откликаться на эту роль сейчас**. Если кандидат хочет двигаться в сторону такой позиции в будущем, реалистичный путь — сначала закрыть разрыв в опыте (до 4 лет) и стек (получить коммерческий React), а не пытаться закрыть оба разрыва одним прыжком через сопроводительное письмо.
## D) Компенсация и спрос
| Источник | Данные (общий рынок Senior Frontend/React, Москва, июль 2026 — WebSearch, использован общий поиск, разделяемый с остальными вакансиями подборки) |
|---|---|
| Медиана Senior Frontend, Москва (hh.ru, февраль 2026) | ~287 500 ₽/мес gross |
| Диапазон (P25–P75) | ~215 625–388 125 ₽/мес gross |
| Другие источники | 300 000–400 000 ₽/мес gross для Senior в Москве в 2026 |
Комп для этой роли объективно привлекателен и заметно выше цели кандидата (100 000–120 000+ ₽ на руки): даже нижняя граница P25 (~215 000 ₽ gross → net ≈ 187 000 ₽ на руки) превышает минимум почти вдвое. **Однако это не повод откликаться при столь явном разрыве по уровню и стеку** — привлекательная зарплата senior-роли не отменяет реального несоответствия требованиям, а искусственное позиционирование под неё создаёт риск быстрого провала на техническом собеседовании и репутационные издержки.
**Бенефиты (из JD):** гибкий график, бонусы и скидки от партнёров, офис в центре города, ДМС, профессиональная команда — тот же стандартный пакет, что и в VK MAX.
**Оформление:** не указано.
## E) План персонализации
**Рекомендация: не готовить персонализацию CV/PDF для этой вакансии сейчас.** При балле 1.8/5 и двойном хард-разрыве (уровень + стек) любая тонкая настройка резюме не изменит фундаментального несоответствия. Вместо плана персонализации — roadmap на будущее:
| # | Что нужно закрыть | Как | Срок (ориентировочно) |
|---|---|---|---|
| 1 | Коммерческий React | Проектный опыт или смена команды на React-стек | 6-12 месяцев практики |
| 2 | 4+ года опыта | Продолжать текущую роль в Здравсервис | ~1.5-2 года |
| 3 | Менторство/найм | Формально взять на себя менторство джуниора в текущей команде | Договориться с руководителем в Здравсервис |
## F) План собеседований
*(Приведено для полноты формата — не рекомендуется использовать для реального отклика на эту роль сейчас.)*
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Разбираться в чужом коде | РМК — баг с замыканием в глобальном классе клавиатуры | Клавиатура переставала работать, код был чужим legacy | Найти причину в незнакомой кодовой базе | Диагностировала утечку реактивной переменной, исправила | Баг устранён | Осознала ценность систематической диагностики перед изменением чужого кода |
| 2 | Технические инициативы/процессы | РМК — Feature Branching и версионирование | Не было стабильного процесса релизов | Внедрить Git Flow и версионирование сборок | Обучила коллегу, внедрила процесс | Команда перешла на стабильные еженедельные релизы | Поняла, что процессные изменения требуют личного примера, а не только документации |
| 3 | Архитектура (частичный перенос с Vue) | ЕКОМ — фронтенд с нуля на Vue 3 | Не было архитектуры для нового внутреннего продукта | Спроектировала структуру (Composition API, Pinia, Vue Router, RBAC) | Продукт растёт больше года, используется несколькими отделами | Полезный, но не React-специфичный опыт — честно обозначать как таковой |
**Рекомендуемый кейс:** не применимо при текущем балле — сначала закрыть разрывы по уровню и стеку.
**Вопросы-ловушки (если кандидат всё же решит откликнуться ради опыта собеседования):**
- *"Расскажите про архитектуру React-приложения, которую вы проектировали"* — честного ответа с реальным опытом нет; это будет заметно на техническом интервью.
- *"Как обеспечиваете совместимость с разными браузерами при 125 млрд запросов в сутки?"* — вне текущего опыта кандидата.
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** кнопка отклика активна ("Откликнуться", ведёт на `/feedback/52033/`) — открытый набор.
2. **Качество описания:** высокое. Указан уровень (senior) и график, конкретные цифры масштаба (до 30 релизов/сутки, до 125 млрд запросов к API/сутки), детализированные задачи (веб-инструменты для сообществ, архитектура фронтенда, код-ревью, взаимодействие с продуктом/дизайном/бэкендом), явно перечислены "плюсом" навыки (mobx/effector, PHP, ведение сообщества в соцсети) — специфичные, не шаблонные детали. Умеренный boilerplate в блоке "Мы предлагаем" (идентичен блоку VK MAX — типично для стандартного HR-шаблона одной компании), но основной текст описания роли уникален и детализирован.
3. **Компания:** VK, тот же официальный карьерный портал (team.vk.company), что и в VK MAX. Дополнительный WebSearch по hiring-сигналам не производился — нет оснований для настороженности.
Классифицирую как **Высокая уверенность**.
---
## Извлечённые ключевые слова
Frontend-разработка, JavaScript, TypeScript, HTML, CSS, React, архитектура фронтенда, масштабируемость, переиспользуемость, код-ревью, технические инициативы, оптимизация производительности, менторство, найм, mobx, effector, PHP, сообщества, высоконагруженный, релизы, API
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover vk-vkontakte-senior` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 1.8/5 — двойной разрыв по уровню (Senior vs фактический Middle, ~2.5 года опыта) и по стеку (React отсутствует). Настоятельно не рекомендуется откликаться на эту вакансию сейчас.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Слежу за тем, как ВКонтакте развивает инструменты для сообществ и авторов — этот масштаб задач по производительности и совместимости очень привлекателен.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). Спроектировала с нуля фронтенд внутренней системы управления заказами и логистикой для сети из ~1200 точек, включая ролевую модель авторизации (RBAC). Профильное образование в информационной безопасности даёт нестандартный взгляд на архитектуру доступа.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами** — объясняла бэкенд-разработчику принцип работы, опираясь на профильное ИБ-образование.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется несколькими отделами.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько из ~1200 аптек онлайн и кто прочитал оповещение и когда.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: этот раздел не рекомендуется заполнять для отклика при текущем уровне несоответствия — сначала закрыть разрывы по опыту и стеку (см. Блок E).
**Closing**
Открыта к обратной связи о том, какой опыт нужен, чтобы дорасти до такой роли в будущем.
---
**Gaps flagged:**
- **Уровень (критично):** JD требует Senior/4+ года опыта; у кандидата ~2.5 года и уровень Middle. Это самый серьёзный разрыв во всей подборке.
- **React (критично):** ядро роли — проектирование архитектуры на React; у кандидата нет коммерческого React-опыта.
- **Менторство/найм** — заявлено как плюс, реального релевантного опыта почти нет.
- **Локация** — формально не блокер (доступна "дистанционный" формат), но формулировка JD предполагает готовность периодически приезжать в офис Москвы/Петербурга — уточнить на первом созвоне, прежде чем продолжать процесс.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, архитектура фронтенда, масштабируемость, высоконагруженный, код-ревью, технические инициативы, менторство, производительность
---
*Run `/career-ops cover vk-vkontakte-senior` to complete angles, confirm company research, and generate the PDF.*