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

+145
View File
@@ -0,0 +1,145 @@
# Оценка: VK — Frontend-разработчик (MAX)
**Дата:** 2026-07-06
**URL:** https://team.vk.company/vacancy/45699/
**Архетип:** Frontend-разработчик (React) — не входит в основные архетипы кандидата
**Балл:** 2.3/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик, стек — React (хуки, контекст, Redux Toolkit/RTK Query/React Query) |
| Domain | Мессенджер/платформа MAX — мини-приложения, Цифровой ID, спецпроекты интеграций |
| Function | Build — разработка фронтенда мини-приложений и спецпроектов |
| Seniority | Middle (указано явно в JD) |
| Формат работы | **Москва · Дистанционный / Комбинированный — удалённый формат явно доступен как опция** |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| TL;DR | Уровень (Middle) и локация (удалёнка доступна) подходят кандидату, но ядро требований — глубокий коммерческий React (хуки, Redux Toolkit, RTK Query/React Query) — отсутствует в CV кандидата, чей основной стек — Vue 3. Это не архетип из North Star кандидата, а смежная, но иная экосистема. |
**Локация — не блокер.** В отличие от вакансии Яндекс Лавки, здесь явно указан формат "Дистанционный / Комбинированный" — удалённая работа доступна как штатная опция. Хард-ограничение из `modes/_profile.md` (переезд/командировки) здесь не срабатывает: оцениваем по обычной шкале.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Коммерческая разработка фронтенда от 3 лет | Здравсервис (~20 мес) + ТулГУ/БиоХимТех (10 мес) ≈ 2.5 года. Ближе к границе, чем в других вакансиях подборки, но формально не хватает |
| JavaScript и TypeScript | **Совпадение**: cv.md — "JavaScript, TypeScript, HTML5/CSS3, Dart" |
| React: хуки, контекст, оптимизация рендеринга, Redux Toolkit / RTK Query / React Query | **Отсутствует.** cv.md не упоминает React вовсе — весь фреймворковый опыт на Vue 3 (Composition API, Pinia) и Flutter (BLoC). Pinia и BLoC — паттерны управления состоянием, концептуально близкие к Redux, но не эквивалент практического опыта |
| Сложные интерфейсы: формы, таблицы, списки, фильтры | **Частичное совпадение** — cv.md: "Интерфейс списка заказов с фильтрацией по 9 параметрам" (TanStack Table), "график курьеров... drag-and-drop" — тот же класс задач, но реализован на Vue-экосистеме (TanStack Table работает и с React, это нейтральный инструмент) |
| Vite, линтеры, форматтеры, CI | **Совпадение**: cv.md — "Vite, npm, ESLint, Prettier"; "CI/CD (рабочий опыт)" |
| REST API, обработка ошибок, сетевые состояния, аналитика/мониторинг на фронте | **Частичное совпадение**: "REST API, WebSocket/WSS"; явного опыта интеграции продуктовой аналитики (метрики фронта) в cv.md нет |
| Код-ревью, декомпозиция задач, документирование | **Совпадение**: cv.md — "документирование, участие в планировании спринтов и приоритизации бэклога"; обучила коллегу системе версионирования (менторский элемент) |
**Пробелы:**
1. **React как основной фреймворк (hard blocker для этой роли).** JD требует глубокого практического владения React-экосистемой (хуки, Redux Toolkit, RTK Query/React Query) — это ядро задач, не периферийный навык. У кандидата ноль коммерческого опыта с React. Стратегия закрытия: честно обозначить это как переход между экосистемами state-менеджмента (Pinia/BLoC → Redux), но признать, что для этой конкретной роли разрыв велик и потребует значительного онбординга именно во время испытательного срока.
2. **3 года коммерческого опыта** — то же ограничение, что и в других вакансиях: ~2.5 года по факту.
3. **Продуктовая аналитика/мониторинг фронта** — не описано в cv.md явно, вероятно nice-to-have пробел, закрываемый на месте.
## C) Уровень и стратегия
1. **Уровень в JD** — Middle (указано явно). **Естественный уровень кандидата** — Middle (`config/profile.yml`). Уровни совпадают номинально, но при отсутствии React содержательно кандидат ближе к junior-в-React, даже будучи middle-в-Vue.
2. **План "продать senior без обмана"** — неприменимо (уровни и так совпадают на бумаге); релевантнее план "продать несмотря на разрыв в стеке": подчёркивать перенос архитектурных паттернов (компонентный подход, паттерны стейт-менеджмента, работа с формами/таблицами/фильтрами) как способность быстро выйти на продуктивность, а не выдавать себя за опытного React-разработчика.
3. **Если понизят уровень / предложат testing period с акцентом на обучение React** — разумный компромисс: принять только если работодатель прозрачно закладывает время на онбординг в React, иначе риск быстрого несоответствия ожиданиям.
**Честная рекомендация:** учитывая, что ядро роли — React, а кандидат осознанно строит карьеру вокруг Vue.js (`modes/_profile.md`, `config/profile.yml`), эта вакансия — не стратегический шаг к её North Star ролям, а скорее смена специализации. Стоит откликаться только при осознанном решении сменить основной фреймворк.
## D) Компенсация и спрос
| Источник | Данные (общий рынок Middle React, Москва, июль 2026 — WebSearch, использован общий поиск, разделяемый с остальными вакансиями подборки) |
|---|---|
| Медиана Middle React | ~230 000 ₽/мес gross |
| Диапазон Middle/Senior Москва | 150 000–400 000 ₽/мес gross, Москва платит на 15-30% выше регионов |
JD не раскрывает вилку. VK — крупная публичная компания, комп обычно на уровне рынка или чуть выше для продуктовых команд с большим охватом (MAX — мессенджер федерального масштаба). Ориентировочно gross **170 000–230 000 ₽/мес** для Middle без глубокого React (вероятно нижняя часть вилки из-за пробела в стеке), net ≈ gross × 0.87 → **~148 000–200 000 ₽/мес на руки** — выше цели кандидата (100 000–120 000+ на руки), но эта оценка не учитывает вероятное понижение предложения из-за отсутствия практического React на собеседовании.
**Бенефиты (из JD):** гибкий график, бонусы и скидки от партнёров, офис в центре города, ДМС, профессиональная команда — стандартный, но не выдающийся пакет.
**Оформление:** не указано.
## E) План персонализации
*(Актуально только при осознанном решении сменить фокус на React — иначе применять не рекомендуется.)*
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Сместить на "паттерны компонентной архитектуры и стейт-менеджмента, переносимые между Vue/React/Flutter" | Не скрывать пробел, но показать концептуальный перенос |
| 2 | Порядок буллетов | Курьерский график первым | Список заказов с 9 фильтрами и TanStack Table — первым (инструмент нейтрален к фреймворку) | TanStack Table используется и в React-экосистеме — снижает воспринимаемый разрыв |
| 3 | Skills | Vue/Flutter в начале | Добавить явную строку "готова к быстрому onboarding в React (хуки, Redux Toolkit) — опыт быстрого освоения Flutter/BLoC с нуля как прецедент" | Даёт рекрутеру доказательство скорости обучения, а не голословное заявление |
| 4 | Cover letter | — | Прямо назвать отсутствие коммерческого React и предложить тестовое задание/техническое интервью с фокусом на архитектурное мышление, а не синтаксис | Снижает риск отсева на этапе резюме за нечестность |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Сложные формы/таблицы/фильтры | ЕКОМ — список заказов с 9 фильтрами | Логисты пользовались неудобными таблицами 1С | Заменить интерфейсом с фильтрацией | Спроектировала список заказов с TanStack Table и 9 параметрами фильтрации | Используется логистикой, клиентским отделом, техподдержкой, разработчиками | Поняла ценность единого интерфейса для нескольких ролей вместо разрозненных инструментов |
| 2 | Redux/стейт-менеджмент (перенос из Pinia/BLoC) | ЕКОМ — Pinia в масштабном проекте с нуля | Нужен предсказуемый стейт-менеджмент для нескольких модулей | Спроектировать стор на Pinia | Внедрила модульную структуру Pinia-сторов | Проект стабильно растёт больше года | Изучила, как паттерны stores/actions переносятся между Pinia и другими state-библиотеками |
| 3 | Vite/CI/линтеры | РМК и ЕКОМ — тулинг | Требовалась стабильная сборка и качество кода | Настроила/использовала Vite, ESLint, Prettier, Feature Branching | Команда перешла на стабильные еженедельные релизы | Осознала, что процессные инструменты важнее личного героизма разработчика |
| 4 | Обработка ошибок/сетевые состояния | РМК — WebSocket-оповещения в реальном времени | Не было надёжной доставки статусов в реальном времени | Внедрить WSS с отслеживанием доставки/прочтения | Оповещения доходят практически без задержки, видно кто прочитал и когда | Работает на ~1200 точках | Узнала, как важно проектировать состояния "частичного успеха" (не все точки читают сразу) |
| 5 | Код-ревью/менторство | РМК — обучение коллеги с 11-летним стажем Git/GitLab | Коллега не работал с Feature Branching | Обучить и внедрить процесс | Ввела Feature Branching, обучила коллегу | Сократилось количество "зависших" фич | Поняла, что менторство работает лучше через демонстрацию на реальной задаче, а не лекцию |
**Рекомендуемый кейс:** ЕКОМ — список заказов с фильтрами (TanStack Table) как самый нейтральный к фреймворку пример сложного UI, максимально близкий к формулировкам JD ("формы, таблицы, списки, фильтры").
**Вопросы-ловушки:**
- *"Почему нет коммерческого опыта с React?"* — честно: "Мой стек — Vue 3 и Flutter, оба используют похожие паттерны компонентной архитектуры и реактивности. Готова к интенсивному онбордингу, но резонно ожидать более длинный период выхода на продуктивность, чем у кандидата с опытом в React."
- *"Почему решили сменить основной фреймворк?"* — нужен честный ответ от кандидата до отклика; в текущем виде мотивация не задокументирована в исходных файлах.
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** кнопка отклика активна ("Откликнуться", ведёт на `/feedback/45699/`) — открытый набор.
2. **Качество описания:** хорошее. Указан уровень (middle), график (полный), три конкретные группы задач (мини-приложение Цифровой ID MAX, мини-приложения спецсервисов, спецпроекты интеграций с маркетингом), детализированный технический стек требований (хуки, контекст, Redux Toolkit/RTK Query/React Query — не общие фразы), описан продукт (MAX — мессенджер + мини-приложения + нейропомощник + платежи + конструктор ботов). Умеренный boilerplate в блоке "Мы предлагаем" (стандартные формулировки), но основной текст специфичен.
3. **Компания:** VK — крупная публичная компания с официальным карьерным порталом (team.vk.company). Дополнительный WebSearch по hiring-сигналам не производился — нет оснований для настороженности.
Классифицирую как **Высокая уверенность**.
---
## Извлечённые ключевые слова
JavaScript, TypeScript, React, хуки, контекст, оптимизация рендеринга, Redux Toolkit, RTK Query, React Query, сложные интерфейсы, формы, таблицы, списки, фильтры, Vite, линтеры, форматтеры, CI, REST API, обработка ошибок, код-ревью, документирование, мини-приложения, MAX
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover vk-max` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 2.3/5 — основной технический стек роли (React) отсутствует в опыте кандидата; настоятельно рекомендуется не откликаться без явного намерения сменить специализацию.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Два года веду продуктовую разработку фронтенда с нуля на Vue 3 и Flutter — интересно, что MAX объединяет мессенджер, мини-приложения и платёжный сервис в одной платформе.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. Веду несколько продуктов одновременно: систему управления заказами и логистикой с нуля, legacy-проект кассы и мобильное приложение. Профильное образование в информационной безопасности дало нестандартный опыт проектирования моделей авторизации и доступа.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** для отслеживания проблемных заказов — заменил неудобные таблицы 1С; сейчас им пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
- **График курьеров на базе календаря vue-cal с drag-and-drop** — заменил ручной ввод расписания SQL-запросами разработчиков.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько аптек онлайн и кто прочитал оповещение и когда.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие конкретные задачи сейчас стоят перед командой MAX по мини-приложениям (Цифровой ID, спецпроекты интеграций)?
**Closing**
Готова обсудить формат онбординга в React-экосистему — открыта к техническому собеседованию, ориентированному на архитектурное мышление, а не только синтаксис фреймворка.
---
**Gaps flagged:**
- **React (критично):** нет коммерческого опыта; ядро роли — React-экосистема (хуки, Redux Toolkit, RTK Query/React Query). Это самый серьёзный разрыв во всей подборке вакансий.
- Формально не хватает нескольких месяцев до заявленных "3 лет" коммерческого опыта.
- Домен (мессенджер/мини-приложения) не пересекается напрямую с опытом кандидата (ритейл/логистика/аптеки) — потребует отдельного объяснения мотивации.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, TypeScript, Redux Toolkit, RTK Query, хуки, сложные интерфейсы, формы и таблицы, Vite, REST API, код-ревью, мини-приложения
---
*Run `/career-ops cover vk-max` to complete angles, confirm company research, and generate the PDF.*