Files
career-ops-vbleroy/reports/001-yandex-lavka-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

153 lines
25 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.
# Оценка: Яндекс (Лавка) — Разработчик фронтенда (Vue/React) в Лавку
**Дата:** 2026-07-06
**URL:** https://yandex.ru/jobs/vacancies/razrabotchik-frontenda-vuereact-v-lavku-45878
**Архетип:** Frontend-разработчик (Vue.js), гибрид с React
**Балл:** 1.0/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Vue.js), с частичным React (десктопная админка) |
| Domain | Frontend / retail-tech (складская логистика, дарксторы, кухни) |
| Function | Build (продуктовая разработка) + повышение надёжности (автотесты, метрики, алерты) + работа с legacy |
| Seniority | Middle+ (JD: "От 3 лет"; команда — 7 фронтенд-разработчиков) |
| Формат работы | **Гибридный / Офис. Санкт-Петербург или Москва. Удалённый формат в вакансии НЕ упомянут.** |
| Размер команды | 7 фронтенд-разработчиков (руководитель группы — Павел Жданов) |
| Оформление | Не указано явно; крупная компания, по умолчанию предполагается ТК РФ |
| TL;DR | Один из лучших стековых мэтчей в подборке (Vue 3 + тестирование + legacy-рефакторинг + ритейл-логистика), но формат работы — гибрид/офис в Москве или Санкт-Петербурге без опции удалёнки — прямо нарушает жёсткое ограничение кандидата (Тула, без переезда, без командировок), поэтому глобальный балл принудительно занижен. |
**Локация — ключевой блокер.** Кандидат живёт в Туле, релокацию и командировки не рассматривает (`config/profile.yml`, `modes/_profile.md`). Вакансия требует физического присутствия в офисе в Санкт-Петербурге или Москве ("Гибридный · Офис"), альтернативы "удалённо" в описании нет. По правилу из `modes/_profile.md`: *"Hybrid/office roles requiring relocation outside Тула, or requiring business travel: score 1.0 — hard constraint, not soft preference"*. Это применяется здесь в полном объёме.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт от 3 лет | Здравсервис (ноя 2024 — наст. время, ~20 мес) + ТулГУ/БиоХимТех (мар–дек 2022, 10 мес фронтенд+бэкенд разработки) = ~2.5 года совокупного опыта. Немного не дотягивает до формальных "3 лет", но близко, и опыт непрерывный и разнообразный (3 продукта одновременно) |
| Vue или React ("можно и с одним") | **Сильное совпадение по Vue**: "Vue 3, Composition API, TypeScript, Pinia" — точная формулировка из cv.md для «Здесь ЕКОМ» и «РМК». React в cv.md не указан вовсе — но JD явно допускает владение только одним из двух фреймворков |
| REST, SSE, асинхронные процессы | cv.md: "REST API, WebSocket/WSS". SSE отдельно не упомянуто, но WebSocket (WSS) — близкий по духу протокол реального времени (внедряла WSS-оповещения на РМК) |
| Юнит- и E2E-тесты (Playwright/Vitest — плюс) | **Точное совпадение**: cv.md — "Vitest (unit-тесты Vue-компонентов), Storybook, Playwright (E2E-тесты на РМК)" — это прямо названный "большой плюс" в JD |
| Поддерживаемый, читаемый код | cv.md — Feature Branching, ESLint/Prettier, ревью через обучение коллеги системе версионирования |
| Готовность работать с legacy и улучшать его | **Сильное совпадение**: РМК — legacy-проект ~6 месяцев, ~20 багов исправлено, включая сложный кейс с замыканием в глобальном классе клавиатуры, внедрён Feature Branching и версионирование сборок |
| Плюс: опыт в логистике/ритейле/фудтехе | **Сильное совпадение**: «Здесь ЕКОМ» — система управления заказами, курьерами и логистикой для аптечной сети (~1200 точек) — прямой аналог складской/ритейл-логистики Лавки |
| Плюс: мобильные интерфейсы (UX склад/кухня) | cv.md: Flutter-приложение «Здесь Аптека», редизайн кнопки «Избранное», компактный блок информации о заказе — опыт мобильного UX в компании без дизайнера |
| Плюс: агрегация данных/аналитика (админка) | cv.md: интерфейс списка заказов с фильтрацией по 9 параметрам, RBAC с разграничением по отделам — релевантно для десктопной админки директоров/менеджеров |
**Пробелы:**
1. **React** — nice-to-have, не hard blocker (JD явно допускает один фреймворк). Стратегия закрытия: указать в сопроводительном письме готовность быстро закрыть разрыв, сослаться на быстрое освоение Vue 3/Composition API как доказательство скорости обучения новых фреймворков.
2. **Формальные "3 года опыта"** — soft blocker, реальный опыт ~2.5 года. Стратегия: подавать совокупный опыт (коммерческий + заказная разработка ТулГУ) как непрерывный трек с ноября 2022 по настоящее время.
3. **SSE** — nice-to-have. WebSocket — близкий транспортный протокол, можно упомянуть в сопроводительном письме как переносимый навык.
## C) Уровень и стратегия
1. **Уровень в JD** — Middle+ (команда из 7 опытных фронтендеров, "опытного фронтенд-разработчика"). **Естественный уровень кандидата** для архетипа Frontend (Vue.js) — Middle (`config/profile.yml`). Совпадает.
2. **План "продать senior без обмана"** — не требуется, уровни совпадают. Акцент делать на: (а) тестовой культуре (Vitest + Playwright — точное совпадение с "большим плюсом" JD), (б) legacy-рефакторинге (РМК), (в) домене логистики/ритейла (ЕКОМ ~1200 точек как аналог дарксторов).
3. **Если бы не локация** — при удалённом формате это была бы одна из сильнейших заявок в подборке (~4.3/5 без учёта локации): стек, тестирование, legacy и домен совпадают почти идеально.
**Итог по локации:** формат работы (гибрид/офис в Москве или Санкт-Петербурге, без удалёнки) обнуляет привлекательность оффера независимо от силы остальных измерений. Балл принудительно снижен до 1.0/5.
## D) Компенсация и спрос
WebSearch (RU market, июль 2026, использовано для этой и последующих 2 оценок — общий бюджет 5 запросов на вакансию, здесь применены рыночные данные без повторного поиска специфично под Яндекс):
| Источник | Данные |
|---|---|
| Общий рынок Middle Vue/React, Москва (2026) | Vue Middle: 290 000–380 000 ₽ gross; React Middle: медиана ~230 000 ₽ gross; общий диапазон Middle/Senior в Москве — 150 000–400 000 ₽ gross |
| Общий контекст | Москва платит на 15-30% больше регионов; конкуренция выросла (16 резюме на вакансию в 2025 vs 9 в 2023) |
JD не публикует вилку зарплаты — типично для Яндекса (закрытая политика, обсуждается на собеседовании). Ориентировочно, при её опыте (~2.5 года, Vue-стек) реалистичный диапазон gross — **180 000–250 000 ₽/мес**, что после НДФЛ (net ≈ gross × 0.87) даёт **~155 000–215 000 ₽/мес на руки** — выше цели кандидата (100 000–120 000+ ₽ на руки). Даже с учётом расходов на съём/дорогу при гипотетическом переезде это выше минимума. Однако вопрос комп не имеет значения при жёстком блокере по локации.
**Бенефиты:** расширенная ДМС с первого месяца (включая ментальное здоровье, стоматологию, коррекцию зрения, 30 дней полностью оплачиваемого больничного, страховка для родственников 80/20) — сильный пакет, выше среднего по рынку.
**Оформление:** не указано явно, но Яндекс как крупный публичный работодатель практически всегда оформляет по ТК РФ.
## E) План персонализации
*(Ниже — гипотетический план на случай, если кандидат решит откликнуться несмотря на локационный блокер, например ради получения оффера для последующих переговоров об удалёнке.)*
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий фокус на Vue3+Flutter+RBAC | Добавить акцент на legacy-рефакторинг и тестовую культуру (Vitest/Playwright) | Прямое совпадение с "большим плюсом" JD |
| 2 | Порядок буллетов ЕКОМ | График курьеров первым | Список заказов с 9 фильтрами и RBAC — первыми | Прямая аналогия с складской/ритейл-логистикой Лавки |
| 3 | Порядок буллетов РМК | В целом ровно | Вывести на первый план внедрение Playwright E2E и Feature Branching | JD явно называет автотесты и техдолг/рефакторинг ключевыми задачами |
| 4 | Skills | Vue 3 и Flutter вперемешку | Сгруппировать: Vue 3 / тестирование (Vitest, Playwright) на первое место | Соответствие структуре JD (стек → тестирование → legacy) |
| 5 | Cover letter | — | Явно указать готовность подтвердить формат работы (удалённо/Тула) на созвоне до продолжения процесса | Экономит время обеих сторон при жёстком локационном ограничении |
**Топ 5 изменений в LinkedIn/hh.ru:** синхронизировать заголовок с "Frontend-разработчик (Vue 3 + тестирование)", вынести Vitest/Playwright в топ навыков, указать домен "ритейл/логистика" явно, обновить локацию с пометкой "рассматриваю удалённо", добавить релевантный опыт RBAC в заголовок проекта ЕКОМ.
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Legacy + рефакторинг | РМК — баг с замыканием в клавиатуре | Клавиатура переставала работать после серии действий | Найти причину сбоя в legacy-коде | Диагностировала утечку через реактивную переменную в глобальном классе биндинга кнопок, исправила | Баг устранён, стабильность выросла | Осознала важность жизненного цикла реактивности в глобальных синглтонах — теперь всегда проверяет это в code review |
| 2 | Автотесты (плюс) | Внедрение Playwright E2E на РМК | Отсутствие автотестов на legacy-кассе | Снизить риск регрессий | Внедрила Playwright E2E тесты, покрытие позитивных/негативных сценариев | Проект на этапе стабилизации через автотесты | В следующий раз начала бы с E2E раньше, до накопления техдолга |
| 3 | Ритейл/логистика (плюс) | ЕКОМ — график курьеров vue-cal | Логистика вручную вносила расписание SQL-запросами через разработчиков | Дать логистике самостоятельность | Спроектировала drag-and-drop календарь на vue-cal | Отдел логистики полностью самостоятельно управляет графиком | Поняла ценность "давать бизнесу самостоятельность" как метрику успеха фичи |
| 4 | Работа с REST/WebSocket | РМК — WebSocket-оповещения в реальном времени | Не было видимости, какие аптеки онлайн | Дать наблюдаемость в реальном времени | Внедрила WSS-оповещения с индикацией прочтения | Видимость по ~1200 точкам, почти без задержки | Заметила поведенческий паттерн (половина читает сразу, остальные — в течение получаса) — использовала для планирования эскалаций |
| 5 | Мобильный UX (плюс) | «Здесь Аптека» — диагностика бага «Избранное» | Раздел не открывался, жалобы пользователей | Найти причину и исправить | Диагностировала загрузку одним запросом, реализовала постраничную загрузку | Жалобы прекратились | Стала активнее искать похожие проблемы производительности до жалоб |
| 6 | Аналитика/админка (плюс) | ЕКОМ — RBAC с разграничением по отделам | Не было разграничения доступа между логистикой и другими отделами | Спроектировать модель доступа | Спроектировала и объяснила бэкенд-команде ролевую модель, опираясь на профильное ИБ-образование | Разграничение внедрено и работает | Осознала ценность нестандартного бэкграунда (ИБ) как отличия от типичных frontend-кандидатов |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — единственный проект, где кандидат вела фронтенд с нуля, включая RBAC, drag-and-drop и списки с фильтрацией — максимально близко к складскому/ритейл-домену Лавки.
**Вопросы-ловушки:**
- *"Почему рассматриваете гибрид/офис при отсутствии релокации?"* — честно: "Живу в Туле, не рассматриваю переезд и командировки. Готова обсуждать этот оффер только если удалёнка возможна — иначе не смогу продолжить процесс."
- *"Почему нет коммерческого опыта с React?"* — "Мой основной стек — Vue 3, но архитектурные паттерны (компонентный подход, state management, работа с реактивностью) переносятся между фреймворками — Composition API и React Hooks решают похожие задачи."
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** дата публикации не показана явно, но кнопка отклика активна ("Войти и откликнуться"), что указывает на открытый набор.
2. **Качество описания:** высокое. Названы конкретные технологии (Vue.js для мобильных приложений, React.js для десктопной админки), указан размер команды (7 человек), названо ФИО и роль руководителя (Павел Жданов, руководитель сектора), описана структура из трёх продуктов с чёткими доменами (склад/кухня/админка), явно расписаны задачи (надёжность, автотесты, метрики, алерты, legacy, DX) и разделены "обязательные" vs "плюсом" требования. Минимальный boilerplate — почти весь текст специфичен для этой команды.
3. **Компания:** Яндекс — публичная компания с многолетней историей найма через тот же портал (yandex.ru/jobs), дополнительное подтверждение легитимности не требуется; WebSearch на предмет hiring-сигналов не расходовался ввиду отсутствия каких-либо тревожных признаков.
Классифицирую как **Высокая уверенность** — нет оснований для "Требует осторожности" или "Подозрительно".
---
## Извлечённые ключевые слова
Vue.js, React.js, REST API, SSE, асинхронные процессы, юнит-тесты, E2E-тесты, Playwright, Vitest, поддерживаемый код, legacy, рефакторинг, автотесты, метрики, алерты, DX, ритейл, логистика, фудтех, мобильные интерфейсы, аналитика, админка, дарксторы
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover yandex-lavka` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 1.0/5 из-за жёсткого локационного ограничения — компания настоятельно не рекомендуется к отклику до прояснения возможности удалённой работы.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Разрабатываю фронтенд для внутренних систем логистики и заказов на Vue 3 уже почти два года — задачи склада, дарксторов и кухонь в Лавке кажутся мне естественным продолжением этого пути.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года веду фронтенд внутренней системы управления заказами и логистикой для аптечной сети из ~1200 точек, параллельно поддерживаю legacy-проект кассы и мобильное приложение на Flutter. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт проектирования моделей авторизации.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **График курьеров на базе календаря vue-cal с drag-and-drop,** раньше расписание вносили разработчики вручную SQL-запросами по заявке логистики, теперь отдел логистики полностью самостоятельно управляет графиком.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** для отслеживания проблемных заказов — заменил неудобные таблицы 1С; сейчас им пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
- **Внедрила Playwright E2E-тесты** на legacy-проекте кассы (РМК) — покрытие позитивных и негативных сценариев.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, интерфейс показывает, кто и когда прочитал оповещение.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи по надёжности (автотесты, метрики, алерты) и legacy-рефакторингу актуальны для команды бэк-офиса Лавки прямо сейчас?
**Closing**
Готова обсудить формат работы — рассматриваю только удалённую занятость либо гибрид/офис в Туле; для продолжения диалога важно прояснить этот момент в первую очередь.
---
**Gaps flagged:**
- **Локация (критично):** вакансия требует гибрид/офис в Санкт-Петербурге или Москве без указания удалённого формата — прямой конфликт с ограничением кандидата (Тула, без переезда/командировок). Это должно быть прояснено до отклика.
- React — не hard blocker, но стоит явно обозначить как зону быстрого роста.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue.js, легаси, автотесты, надёжность, DX, ритейл-логистика, склад, дарксторы, юнит- и E2E-тесты, Playwright, Vitest, мобильные интерфейсы, аналитика
---
*Run `/career-ops cover yandex-lavka` to complete angles, confirm company research, and generate the PDF.*