Files
career-ops-vbleroy/reports/003-vk-vkontakte-senior-2026-07-06.md
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

148 lines
21 KiB
Markdown
Raw Permalink 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.
# Оценка: 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.*