Files
career-ops-vbleroy/reports/010-mts-senior-frontend-nba-bank-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

170 lines
25 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 разработчик [NBA.Банк]
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/663323395236042942
**Архетип:** Frontend-разработчик (Vue.js) — первичный архетип кандидата
**Балл:** 1.6/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Vue.js), primary fit |
| Domain | Frontend (виджет NBA.Банк, встроенный банковский продукт МТС) |
| Function | Build (новый функционал + рефакторинг существующего) |
| Seniority (в JD) | Senior, диапазон опыта 3-6 лет |
| Формат работы | **Москва · Гибридный · полный день** |
| Размер команды | Не указан |
| Оформление | Не указано в JD (ООО «МТС Веб Сервисы» — юрлицо; по умолчанию предполагается ТК РФ, стандарт для крупного корпоративного работодателя) |
| TL;DR | Технически сильное совпадение по стеку (Vue 3 + TS), но роль требует гибридного присутствия в московском офисе — это жёстко конфликтует с локацией кандидата (Тула, без переезда и командировок). |
**Ключевой блокер:** гибридный формат в Москве. Кандидат живёт в Туле, переезд и командировки исключены (`config/profile.yml`, `modes/_profile.md`). Тула не в зоне ежедневной доступности московского офиса (~180 км, не воспринимается рынком как "пригород Москвы"). Это подпадает под жёсткое правило локации: *"Hybrid/office roles requiring relocation outside Тула... score 1.0 — hard constraint, not a soft preference"*.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт разработки на TypeScript | ✅ «Стек: Vue 3, Composition API, TypeScript, Pinia, Vue Router...» (ЕКОМ, ~1 год) |
| Опыт разработки на Vue 3 | ✅ ЕКОМ (frontend с нуля) + РМК (legacy, ~6 месяцев) — оба на Vue 3 |
| Понимание клиент-серверной архитектуры, работа с API | ✅ REST API упомянут в навыках; WebSocket/WSS — внедрила в РМК и ЕКОМ |
| HTML, CSS, адаптивная вёрстка | ✅ HTML5/CSS3 в навыках; Tailwind CSS в проекте ЕКОМ |
| Vite/Webpack | ⚠️ Частично — Vite указан в стеке ЕКОМ; Webpack не упомянут в CV |
| Микрофронтенды | ❌ Не упомянуты в CV — нет прямого опыта |
| Git | ✅ «Внедрила Feature Branching в Git (GitLab)», обучила коллегу системе версионирования |
| Юнит-тесты Jest/Vitest | ✅ «Vitest (unit-тесты Vue-компонентов)»; Jest не упомянут, но Vitest — прямой эквивалент |
**Пробелы:**
1. **Webpack** — nice-to-have, не hard blocker (Vite покрывает суть задачи сборки). Стратегия закрытия: указать в сопроводительном, что базовые концепции сборщиков (chunking, code splitting, dev server, plugins) переносятся между Vite и Webpack напрямую.
2. **Микрофронтенды** — потенциальный hard blocker, если в NBA.Банк это ядро архитектуры (виджет, встраиваемый в банковское приложение — вероятно, микрофронтенд-подход). Смежного опыта в CV нет. Стратегия: честно признать отсутствие прямого опыта, но привести пример модульной архитектуры ЕКОМ (разграничение по ролям/отделам через RBAC) как доказательство системного мышления о границах ответственности между модулями.
3. **Jest** — не hard blocker, Vitest как замена принимается почти везде, где мигрируют на Vite.
## C) Уровень и стратегия
**Уровень в JD:** Senior, 3-6 лет коммерческого опыта.
**Естественный уровень кандидата:** Middle (для архетипа Frontend/Vue.js) — на текущий момент около 1.5-2 лет непрерывного коммерческого опыта в frontend (ноябрь 2024 — настоящее время в «Здравсервис»), плюс 10 месяцев заказной разработки в 2022 (частично backend/Node.js, не чисто frontend). Совокупный опыт близок к нижней границе диапазона JD, но не достигает его комфортно.
**План "продать senior без обмана":**
- Не заявлять формальный тайтл senior — но подчеркнуть senior-поведение: единолично спроектировала frontend ЕКОМ с нуля, включая архитектуру ролевой модели (RBAC), которую объясняла бэкенд-команде.
- Обучение коллеги с 11-летним стажем работе с Git/Feature Branching — прямое доказательство того, что уровень влияния не завязан на годы в профессии.
- Проактивная роль в приоритизации бэклога (стала участником стратегического планирования спринтов с product owner) — сигнал системного, не только исполнительского мышления.
- Формулировка для скрининга: *"Около двух лет коммерческого опыта, но веду продукт от архитектуры до продакшна самостоятельно — включая проектирование системы доступа и обучение процессам команды"*.
**План "если понизят уровень":**
- Принять Middle-уровень, если компенсация справедлива относительно рынка (см. блок D).
- Договориться о пересмотре грейда через 6 месяцев с явными критериями: закрытие пробела по микрофронтендам, самостоятельная доставка минимум 1-2 фич без ревью архитектуры.
**Однако:** вся эта стратегия становится вторичной на фоне блокера локации (см. блок A/G) — компания в любом случае потребует гибридное присутствие в Москве, что делает вопрос грейда не главным риском этой вакансии.
## D) Компенсация и спрос
WebSearch (июль 2026, "Vue.js frontend developer зарплата Москва hh.ru 2026 middle senior"):
| Уровень | Диапазон gross (₽/мес, Москва) | Net ≈ gross × 0.87 |
|---|---|---|
| Middle Vue Developer | 290 000 — 380 000 | ≈ 252 300 — 330 600 |
| Senior Vue Developer | 480 000 — 650 000 | ≈ 417 600 — 565 500 |
Источник: агрегированные данные по рынку fronted-разработки в Москве, 2026 (sborka.work, enigmai.ru, hh.ru — см. Sources ниже). Прямых данных именно по МТС/ООО «МТС Веб Сервисы» не найдено; экстраполяция по рыночному уровню для крупного корпоративного работодателя в Москве.
**Оценка для кандидата:** если бы локация не была блокером, при грейдовании как Middle (реалистичный сценарий с учётом блока C) компенсация ~250-330 тыс ₽ на руки — заметно выше целевого минимума кандидата (100 000-120 000+ ₽ на руки). МТС как крупный работодатель дополнительно даёт ДМС со стоматологией с 1-го месяца, страхование от несчастных случаев, 28 дней отпуска, корпоративный университет — стандартный сильный соцпакет для big tech РФ.
**Но:** компенсационная привлекательность полностью нивелируется требованием гибридного присутствия в Москве (см. G и следующий раздел) — компания не предлагает удалённый формат для этой позиции.
Gross/Net в JD не указаны явно (типично для МТС — диапазон обсуждается на собеседовании).
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Общий фокус на Vue 3 + Flutter + RBAC | Сузить до Vue 3 + TS + продакшн-архитектура (без Flutter) | JD чисто frontend/Vue, Flutter — шум |
| 2 | Порядок буллетов ЕКОМ | RBAC и график курьеров равнозначны | RBAC — первым (соответствует "прорабатывать технические решения"), затем список заказов (архитектура фильтрации) | JD явно просит "участие в проработке технических решений" |
| 3 | Skills | Vite упомянут, Webpack — нет | Добавить фразу "инструменты сборки (Vite; общие принципы бандлинга переносимы на Webpack)" | Закрыть пробел честно, не выдумывая опыт |
| 4 | RMК блок | WebSocket и Git выделены отдельно | Объединить в один буллет "внедрение WebSocket + Feature Branching в Git" | Показать связку клиент-серверного мышления и процессной зрелости — оба маркера, которые JD ищет в "проработке технических решений" |
| 5 | Локация в форме | — | Указать явно: "Тула, готова к удалённой работе; для гибридного/офисного формата — только при базировании в Туле" | Прозрачность с первого контакта важнее, чем шанс дойти до интервью и получить отказ на этапе логистики |
**Топ для hh.ru/LinkedIn:** добавить ключевые слова "TypeScript", "Vue 3", "Composition API", "Vite", "REST API", "Vitest", "Git/GitLab" в заголовок и первую строку профиля.
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Проработка технических решений | RBAC в ЕКОМ | Нужна была ролевая модель доступа между отделами | Спроектировать и защитить модель перед бэкенд-командой | Разработала модель ролей (логистика/заказы/техподдержка), объяснила принцип бэкенд-разработчику с опорой на ИБ-образование | Модель принята и внедрена, разграничение работает | Поняла, что образование в ИБ — реальное конкурентное преимущество, а не просто диплом |
| 2 | Vue 3 / TS в продакшне | Frontend ЕКОМ с нуля | Нужна была система управления заказами/логистикой | Спроектировать и реализовать frontend на Vue 3 + TS + Pinia | Построила интерфейс с фильтрацией по 9 параметрам, заменивший таблицы 1С | Используется логистикой, техподдержкой, клиентским отделом и разработчиками | Осознала ценность UX-решений для непрофильных пользователей (не разработчиков) |
| 3 | Работа с API / клиент-серверная архитектура | WebSocket-оповещения в РМК | Не было realtime-статуса аптек | Внедрить WSS-соединение и обработку событий на клиенте | Реализовала оповещения почти без задержки, статус прочтения | Впервые видно онлайн-статус ~1200 аптек в реальном времени | Поняла важность обратной связи о доставке сообщения, не только самой доставки |
| 4 | Рефакторинг / поддержание качества кода | Баг с замыканием в РМК | Клавиатура переставала работать после многократного использования | Найти причину в глобальном классе биндинга кнопок | Устранила утечку реактивных переменных, исправила ~20 багов в проекте | Стабилизировала критичный для кассиров модуль | Стала внимательнее к жизненному циклу реактивных переменных в долгоживущих объектах |
| 5 | Git / процессная зрелость | Feature Branching + обучение коллеги | Хаотичный git-флоу, зависающие фичи | Внедрить Feature Branching и обучить команду | Обучила коллегу с 11-летним стажем; переход на стабильные еженедельные релизы | Сократилось количество зависших фич | Убедилась, что процессные изменения требуют личного менторства, не только документации |
| 6 | Работа с production-инцидентами | Диагностика бага "Избранное" | Пользователи жаловались, что раздел не открывается | Найти причину (загрузка всех товаров одним запросом) | Реализовала постраничную загрузку совместно с бэкенд-разработчиком | Жалобы прекратились | Поняла ценность профилирования перед тем, как чинить "на глаз" |
**Рекомендуемый кейс:** ЕКОМ — архитектура RBAC + список заказов с фильтрацией. Показывает end-to-end владение продуктом и системное мышление, наиболее близкое к формулировке JD "участие в проработке технических решений".
**Вопросы-ловушки:**
- *"Почему рассматриваете вакансию с меньшим опытом, чем указано (3-6 лет)?"* → Ответ: подчеркнуть темп роста и объём самостоятельной ответственности (частный продукт с нуля, обучение старшего коллеги, RBAC-дизайн), а не годы.
- *"Готовы к гибридному графику в Москве?"* → Честный ответ обязателен: "Нет, base — Тула, переезд не рассматриваю. Открыта к удалённому формату, если он возможен для этой роли." Не смягчать до "гибко" — это противоречит политике кандидата.
## G) Легитимность вакансии
**Сигналы свежести:** Дата публикации не показана в извлечённом JD; статус отклика — активный ("Откликнуться" + встроенная форма "Отклик на вакансию"), что подтверждает, что вакансия открыта на момент извлечения.
**Качество описания:** Высокое. Указан конкретный проект (виджет NBA.Банк), конкретный стек (Vue 3, TypeScript, Vite/Webpack, микрофронтенды, Jest/Vitest), реалистичный диапазон опыта, разграничение зон ответственности (новый функционал / оптимизация / участие в решениях). Соотношение generic-формулировок к конкретике низкое — не шаблонный "универсальный" текст. Список бенефитов подробный и специфичный для МТС (MTS Ocean, TechTalks, гильдии инженеров, конкретные конференции — HighLoad++, DataFest, Mobius).
**Компания:** ООО «МТС Веб Сервисы» — юрлицо крупной публичной телеком-группы МТС, вакансия размещена на собственном корпоративном портале (job.mts.ru). Ничего в описании не выглядит подозрительным (нет признаков "плати за обучение", нет расплывчатых обещаний дохода, нет требования личных данных сверх обычной формы). WebSearch по репутации найма компании не проводился — сигналов, требующих проверки, не обнаружено (бюджет WebSearch использован на Block D).
**Вывод:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
TypeScript, Vue 3, Vue.js, клиент-серверная архитектура, REST API, HTML5, CSS3, адаптивная вёрстка, Vite, Webpack, микрофронтенды, Git, юнит-тесты, Jest, Vitest, рефакторинг, виджет, NBA.Банк, техническое решение, гибридный формат, качество кода
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-senior-frontend-nba-bank` 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)*
Разработка виджета NBA.Банк на Vue 3 и TypeScript — стек, на котором я строю продукт с нуля последний год, и роль, где важна проработка технических решений, а не только реализация готовых макетов.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). За последний год спроектировала и реализовала с нуля frontend внутренней системы управления заказами и логистикой (ЕКОМ) для сети из ~1200 аптек, а также подключилась к legacy-проекту кассы на Vue 3 с WebSocket. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC).
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами (например, логистика не видит заказы, и наоборот) — объясняла бэкенд-разработчику принцип работы, опираясь на профильное ИБ-образование.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С; используется логистикой, отделом работы с клиентами, техподдержкой и разработчиками.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, оповещения доходят практически без задержки.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** — команда перешла на стабильные еженедельные релизы.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стоят перед виджетом NBA.Банк (масштабирование, производительность, интеграция с банковским приложением)? Как бы вы к ним подошли?
**Closing**
Готова обсудить детали в удобное время. Отдельно хочу сразу обозначить: моя база — Тула, переезд и командировки не рассматриваю; открыта к удалённому формату, если он применим к этой позиции.
---
**Gaps flagged:**
- **Локация (критично):** роль заявлена как гибридная в Москве. Кандидат не переезжает и не рассматривает командировки — это нужно прояснить с рекрутером в первом же контакте, до вложения времени в подготовку.
- **Уровень:** JD просит 3-6 лет опыта (Senior); у кандидата ~1.5-2 года непрерывного коммерческого опыта. Обсуждается в блоке C.
- **Микрофронтенды:** прямого опыта нет — честно обозначить как зону роста, если тема поднимется на техническом интервью.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue 3, TypeScript, клиент-серверная архитектура, REST API, адаптивная вёрстка, Vite, микрофронтенды, юнит-тесты Vitest, проработка технических решений, качество кода
---
*Run `/career-ops cover mts-senior-frontend-nba-bank` to complete angles, confirm company research, and generate the PDF.*
---
## Sources (WebSearch, Block D)
- [Зарплата Frontend-разработчика в 2026: Junior, Middle, Senior, Lead | СБОРКА](https://sborka.work/knowledge/salaries/frontend-developer-salary)
- [Зарплата Frontend разработчика в 2026 году: детальный разбор React, Vue и Angular](https://enigmai.ru/salary/frontend/frontend-salary-2026/)
- [Профессия Frontend-разработчик | hh.ru](https://career.hh.ru/profession/40)