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