Files
career-ops-vbleroy/reports/014-mts-frontend-razrabotchik-2026-07-06.md
T
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

155 lines
22 KiB
Markdown
Raw 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.
# Оценка: МТС — Senior Frontend разработчик
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/548390212791698272
**Архетип:** Frontend-разработчик (Vue.js) — стек совпадает, но локация — жёсткий блокер
**Балл:** 1.6/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (JD) | Frontend-разработчик; стек на выбор — React.JS, Angular.JS, **Vue.JS**, Node.JS, TS |
| Архетип кандидата | Frontend Developer (Vue.js) — primary, прямое совпадение по стеку |
| Domain | Frontend-разработка (продукт не конкретизирован в тексте JD) |
| Function | Build (новый функционал, дефекты) + code review + участие в архитектуре и API-дизайне |
| Seniority (JD) | Senior, «не менее 3 лет» опыта с выбранным стеком |
| Seniority (кандидат) | ~1 год 8 месяцев коммерческого опыта (с ноября 2024) — ниже заявленного порога |
| Формат работы | **Москва · Гибкий график** — «гибкий график» относится к времени работы (гибкие часы), а не к формату присутствия. Удалённая работа явно не упомянута. |
| Размер команды | Не указано; упоминается «выстраивание процесса разработки распределённых команд» — намёк на удалённо-распределённую структуру, но не гарантия удалённого формата для этой роли |
| Оформление | Не указано (юрлицо: ООО МТС Веб Сервисы) |
| TL;DR | Senior frontend-роль с гибким по стеку требованием (Vue.js в списке) — сильное стековое совпадение с кандидатом, но локация в Москве без подтверждённой удалёнки тянет балл к минимуму по жёсткому правилу локации. |
**Локация — решающий фактор.** По правилу из `modes/_profile.md`: гибрид/офис/on-site вне Тулы без опции удалённой работы = балл **1.0** по этому измерению (жёсткое ограничение, не предпочтение). JD указывает «Москва» без пометки «удалённо»/«гибрид» — «Гибкий график» описывает часы, не место. При консервативной и honest интерпретации это на сегодня выглядит как офисная/гибридная роль в Москве, что требует переезда или регулярных поездок кандидата из Тулы — недопустимо по её условиям (переезд — нет, командировки — нет).
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| JavaScript, HTML5, CSS3 | ✅ Прямое совпадение |
| Опыт от 3 лет на выбор: React/Angular/**Vue.JS**/Node/TS | ⚠️ Стек (Vue.JS + TS) совпадает полностью, но общий стаж (~1 год 8 месяцев) не дотягивает до заявленных «не менее 3 лет» |
| Реализация компонентов UI и логики взаимодействия | ✅ «Здесь ЕКОМ» — frontend с нуля на Vue 3, Composition API, Pinia, Vue Router |
| Разработка нового функционала + модификация существующего | ✅ ЕКОМ (новая система) и РМК (legacy-проект) — оба типа задач представлены |
| Исправление дефектов | ✅ «Исправила порядка 20 багов» (РМК), «более 20 багов» (Здесь Аптека) |
| Код-ревью | ⚠️ Не упомянуто явно в CV как формальная практика — вероятный пробел или недостаточно задокументированный опыт |
| Ревью макетов в Figma | ⚠️ Косвенно — есть опыт самостоятельного UI-дизайна («редизайн кнопки Избранное», «app-иконки»), но не подтверждена работа именно как ревьюер чужих Figma-макетов |
| Декомпозиция задач и архитектурные решения в команде | ✅ Спроектировала RBAC-модель и объяснила её бэкенд-команде; участвует в планировании спринтов и анализе бэклога |
| Обсуждение и проектирование API | ⚠️ Косвенно — обсуждала с бэкенд-разработчиком постраничную загрузку и WebSocket-протокол, но формального «API design» опыта в CV не выделено отдельно |
**Пробелы:**
1. **Стаж (3+ года vs ~1 год 8 месяцев)** — это soft-blocker: реальный опыт качественный (RBAC design, продукт с нуля, менторство коллеги с 11-летним стажем), но количественно ниже порога. Стратегия: подчеркнуть плотность и разнообразие опыта (3 продукта одновременно, менторство, архитектурные решения) как компенсацию за меньший общий стаж.
2. **Формальное код-ревью** — nice-to-have, закрывается фразой в сопроводительном письме о ревью PR коллег в рамках Feature Branching workflow.
3. **API design** — можно закрыть, сославшись на обсуждение WebSocket-протокола и структуры данных для RBAC с бэкенд-командой.
## C) Уровень и стратегия
1. **Уровень в JD:** Senior, от 3 лет опыта. **Естественный уровень кандидата:** Middle (по `config/profile.yml`, растущий — расширение до архитектурных задач и менторства).
2. **План «продать senior без обмана»:** акцент на широту ответственности, а не на годы — ведёт 3 продукта параллельно, самостоятельно спроектировала RBAC и объяснила её более опытной команде, обучила коллегу с 11-летним стажем работе с Git. Это поведенческие маркеры senior, но при 1 год 8 месяцев общего стажа компания, скорее всего, всё равно оценит как Middle/Middle+.
3. **План «если понизят уровень»:** принять как Middle+ при справедливой компенсации, договориться о пересмотре через 6 месяцев на основе конкретных критериев (взятие на себя ревью, самостоятельное ведение фичи end-to-end).
**Но:** даже при отличном стековом совпадении этот пункт вторичен — локационный блокер (см. блок A) остаётся определяющим для итогового балла.
## D) Компенсация и спрос
| Показатель | Значение | Источник |
|---|---|---|
| Senior Vue-разработчик, Москва | 480 000 – 650 000 ₽/мес | результаты поиска по hh.ru-статистике зарплат 2026 |
| Медиана Senior Frontend, Москва (все стеки) | 287 500 ₽/мес (февраль 2026) | [hh.ru career profession page](https://career.hh.ru/profession/40) |
| Диапазон Senior Frontend, Москва (по стеку) | 300 000 – 450 000 ₽/мес | [Зарплата Frontend-разработчика 2026: Junior, Middle, Senior, Lead](https://sborka.work/knowledge/salaries/frontend-developer-salary) |
| Указано в JD | Конкретная цифра не раскрыта — только описание бенефитов (ДМС, страхование, отпуск 28+3 дня) | jds/mts-senior-frontend-razrabotchik.md |
| Gross/Net | Не указано явно; предполагается gross. `net ≈ gross × 0.87` | modes/ru/_shared.md |
Учитывая вероятное понижение уровня до Middle/Middle+ (см. блок C), реалистичная компенсация, скорее всего, ближе к медиане Middle (200 000–270 000 ₽ gross ≈ 174 000–235 000 ₽ net), что **всё ещё комфортно выше** цели кандидата (100 000–120 000+ ₽/мес на руки). Компенсация не является проблемой — проблема исключительно в локации.
## E) План персонализации
Балл ниже порога 3.0 — PDF не генерируется. Основной блокер (локация) не решается изменениями резюме. Если формат работы будет подтверждён как удалённый — переоценить с нуля, так как стек совпадает отлично:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общий фокус на Vue3+Flutter | Выделить Vue 3 + TypeScript + Pinia как основной стек, Flutter — вторично | JD явно перечисляет Vue.JS как принимаемый стек |
| 2 | Опыт (ЕКОМ) | Стандартное описание | Поднять RBAC-дизайн и архитектурные решения на первое место | Совпадает с «участие в архитектурных решениях» и «декомпозиция задач» |
| 3 | Soft skills | В конце резюме | Вынести менторство (обучение коллеги Git) и участие в планировании в summary | Прямое совпадение с «выстраивание процесса разработки распределённых команд» |
| 4 | Сопроводительное письмо | — | Прямо уточнить формат работы (удалённо/гибрид) до подачи | Критично для honest-фильтрации по локации |
| 5 | Стаж | Не акцентируется | Явно указать «плотность» опыта — 3 параллельных продукта за 1.5 года | Компенсирует количественный разрыв со стажем 3+ года |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Реализация компонентов и логики | Frontend ЕКОМ с нуля (Vue 3, Composition API) | Не было системы управления заказами/логистикой, всё делалось вручную | Разработать frontend с нуля | Построила стек Vue3 + Pinia + TanStack Table + WebSocket | Логистика, поддержка, клиентский отдел и разработчики используют систему ежедневно | Изначально стоило сразу проектировать модель доступа (RBAC), а не добавлять её позже |
| 2 | Декомпозиция и архитектурные решения | Дизайн RBAC-модели | Нужно разграничить доступ между отделами | Спроектировать ролевую модель с нуля | Внедрена и объяснена бэкенд-команде модель ролей | Отделы видят только релевантные им данные | Задокументировала бы модель в едином файле сразу, а не объясняла устно |
| 3 | Код-ревью / процессы команды | Внедрение Feature Branching + менторство | Нестабильные релизы, зависшие фичи | Внедрить Git Flow и обучить команду | Обучила коллегу с 11-летним стажем, переход на стабильные еженедельные релизы | Сократилось количество зависших фич | Стоило формализовать чек-лист код-ревью с самого начала |
| 4 | Обсуждение и проектирование API | WebSocket-протокол оповещений (РМК) | Нужны были оповещения в реальном времени без задержек | Спроектировать протокол вместе с бэкендом | Внедрила WebSocket (WSS), статус прочтения оповещений | Половина аптек читает оповещения в первые минуты | В следующий раз заложила бы fallback на случай обрыва соединения на этапе дизайна, а не постфактум |
| 5 | Работа с фильтрацией/производительностью | Список заказов с фильтрацией по 9 параметрам | Логисты и поддержка не могли отслеживать проблемные заказы в неудобных таблицах 1С | Спроектировать интерфейс с множественной фильтрацией | Заменил таблицы 1С, используется 4 отделами | Стал стандартным инструментом для нескольких команд | Добавила бы сохранение пользовательских фильтров сразу, а не по отдельному запросу позже |
| 6 | Проактивность в планировании (аналог "распределённые команды") | Поднятие вопроса приоритизации бэклога | Приоритеты забывались/терялись при планировании | Явно указала руководству на проблему | Команда вернулась к целям на полгода/год, кандидат включена в спринт-планирование | Стала регулярным участником стратегического планирования | Раньше начала бы формально документировать цели спринтов |
**Рекомендуемый кейс на интервью:** «Здесь ЕКОМ» целиком (RBAC + WebSocket + фильтрация) — прямое покрытие большинства требований JD.
**Вопросы-ловушки:**
- *«Ваш общий стаж меньше 3 лет — почему претендуете на Senior-роль?»* → Ответ: акцент на плотности и широте ответственности (3 продукта, менторство, архитектурные решения), готовность обсудить реальный грейд по итогам технического интервью.
- *«Расскажите про удалённый формат работы для этой позиции»* → Уточняющий вопрос **кандидата** к рекрутёру в начале разговора — must-ask, так как JD не подтверждает формат.
## G) Легитимность вакансии
**Свежесть:** дата публикации не показана — нейтрально, типично для ATS МТС.
**Качество описания:** высокое — конкретный список технологий на выбор (не общая формулировка «фронтенд разработчик»), реалистичные и разнообразные обязанности (код-ревью, декомпозиция, API-дизайн), подробные бенефиты с конкретными деталями (MTS Ocean платформа, участие в HighLoad++/DataFest/Mobius/Test Driven Conf, отпуск 28+3 дня). Минимум шаблонного «воды».
**Компания:** ООО МТС Веб Сервисы — та же экосистема, что и вакансия 013; крупный, публично известный оператор. Отдельный WebSearch по хайринг-сигналам не потребовался — бюджет сохранён, так как ничего в тексте не вызывает сомнений.
**Apply control:** активна кнопка «Откликнуться» + встроенная форма.
**Итог:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
JavaScript, HTML5, CSS3, Vue.JS, React.JS, Angular.JS, Node.JS, TypeScript, архитектура, распределённые команды, код-ревью, Figma, декомпозиция задач, проектирование API, веб-сервер, Git, компоненты интерфейса, логика взаимодействия, новый функционал, исправление дефектов
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-frontend-razrabotchik` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Заинтересовала возможность применить опыт разработки на Vue 3 в масштабе крупной продуктовой компании — особенно задачи, связанные с архитектурными решениями и проектированием API в команде.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года разработала с нуля фронтенд внутренней системы управления заказами и логистикой для сети из ~1200 аптек, параллельно ведя ещё два продукта.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, объяснила принцип бэкенд-команде.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется логистикой, клиентским отделом, техподдержкой и разработчиками.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько аптек онлайн, кто и когда прочитал оповещение.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие архитектурные или продуктовые задачи актуальны для этой команды в МТС и как вы бы их решали?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Локация (hard):** формат работы указан только как «Москва», удалённая работа не подтверждена — требует уточнения перед откликом; кандидат не рассматривает переезд/командировки.
- **Стаж:** заявлено «не менее 3 лет», у кандидата ~1 год 8 месяцев — компенсируется широтой ответственности.
- **Код-ревью и API-дизайн:** не выделены явно в CV как отдельная практика — упомянуть в письме через смежный опыт.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue.JS, TypeScript, архитектура приложения, распределённые команды, код-ревью, декомпозиция задач, проектирование API, компоненты интерфейса, Figma, Git
---
*Run `/career-ops cover mts-frontend-razrabotchik` to complete angles, confirm company research, and generate the PDF.*