Files
career-ops-vbleroy/reports/012-mts-middle-frontend-vue-garnet-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

25 KiB
Raw Blame History

Оценка: МТС — Middle Frontend Developer (Vue) [GARNET]

Дата: 2026-07-06 URL: https://job.mts.ru/vacancy/679637913989810210 Архетип: Frontend-разработчик (Vue.js) — первичный архетип кандидата, лучшее стековое совпадение в пакете Балл: 1.9/5 Legitimacy: Высокая уверенность PDF: не создан (балл < 3.0)


A) Резюме роли

Параметр Значение
Архетип Frontend-разработчик (Vue.js), primary fit — самое точное стековое совпадение среди всех трёх вакансий пакета
Domain Frontend (проект GARNET, МТС Веб Сервисы)
Function Build (новый функционал + поддержка + переход на Vue 3 + совместная работа с дизайнером)
Seniority (в JD) Middle, от 3 лет опыта на позиции Frontend
Формат работы Москва · Гибридный · полный день
Размер команды Не указан
Оформление Не указано в JD (по умолчанию предполагается ТК РФ, стандарт для ООО «МТС Веб Сервисы»)
TL;DR Лучшее техническое совпадение по стеку во всём пакете (Vue 3 + Composition API + TS точь-в-точь), но тот же блокер локации — гибрид в Москве — обнуляет практическую ценность этого совпадения.

Ключевой блокер: как и в вакансии 010, формат "Гибридный" подразумевает регулярное присутствие в московском офисе. Кандидат базируется в Туле, переезд и командировки исключены. Применяется то же жёсткое правило локации (modes/_profile.md): гибрид/офис вне Тулы → балл по этому измерению 1.0, что тянет глобальный балл в диапазон 1.0-2.0 независимо от силы остальных измерений.

Важное наблюдение: если бы эта роль была удалённой (как 011) или базировалась в Туле, она была бы, вероятно, лучшим совпадением во всём пакете — стек, уровень и зона роста ("участвовать в переходе на Vue.js 3") совпадают с профилем кандидата почти идеально. Именно поэтому локация здесь — не формальность, а решающий фактор: технически сильная вакансия становится нерелевантной из-за формата работы.

B) Совпадение с CV

Требование JD Совпадение с CV
Frontend от 3 лет ⚠️ У кандидата ~1.5-2 года непрерывного коммерческого опыта — ниже требуемого порога
TypeScript, HTML5, CSS3, JS (ES6+) ✅ Полное совпадение — «Языки программирования: JavaScript, TypeScript, HTML5/CSS3»
Vue.js 3 + Composition API ✅ Точное совпадение — «Vue 3, Composition API» является основным стеком ЕКОМ и РМК
SCSS/LESS ⚠️ Не упомянуты явно — кандидат использует Tailwind CSS/shadcn-vue; препроцессоры не в CV, но «быстро осваиваю... любые CSS-подходы»
Адаптивная и кросс-браузерная вёрстка ✅ HTML5/CSS3 + Tailwind в проектах
Git ✅ «Внедрила Feature Branching в Git (GitLab)»
Веб-безопасность ✅ Профильное образование по ИБ + проектирование RBAC — прямое, нестандартное для frontend-кандидата преимущество
Webpack, Vite ⚠️ Vite — да; Webpack не упомянут
Принципы UI/UX ✅ Самостоятельные редизайны (кнопка «Избранное», блок информации о заказе), app-иконки — в компании без дизайнера
Алгоритмы, структуры данных, архитектура, паттерны ⚠️ Явных упоминаний алгоритмических задач нет в CV, но архитектурная работа (RBAC, разделение по ролям) косвенно подтверждает системное мышление
Опыт создания сложных интерфейсов ✅ ЕКОМ (график курьеров с drag-and-drop на vue-cal, список заказов с 9 фильтрами) — явно "сложные интерфейсы"

Пробелы:

  1. 3+ года опыта — умеренный blocker (не hard, но заметный). Стратегия: акцент на плотность и объём ответственности за короткий срок (продукт с нуля, RBAC-архитектура, менторство), см. блок C.
  2. SCSS/LESS — nice-to-have, не hard blocker. Стратегия: честно указать быстрое освоение любых CSS-подходов, сослаться на Tailwind как на демонстрацию владения современными CSS-методологиями.
  3. Webpack — как и в 010, не критично при наличии Vite-опыта.
  4. Формальные алгоритмы/паттерны — если на техническом интервью будет секция live-coding на алгоритмы, у кандидата нет прямых proof points в CV. Стратегия: подготовиться отдельно (LeetCode-style), не полагаться только на прикладной опыт.

C) Уровень и стратегия

Уровень в JD: Middle, "опыт работы на позиции Frontend от 3х лет". Естественный уровень кандидата: пограничный Junior+/Middle — около 1.5-2 лет непрерывного коммерческого опыта. Ближе к нижней границе Middle, чем к формальным "3 годам", но по глубине ответственности (продукт с нуля, RBAC, менторство более опытного коллеги) уже демонстрирует поведение, типичное для Middle+.

План "продать senior/middle без обмана":

  • Открыто говорить о ~1.5-2 годах опыта, но подкреплять аргумент не стажем, а масштабом: единолично построила продакшн-продукт (ЕКОМ) с нуля, включая архитектуру доступа.
  • Использовать формулировку: "Меньше формальных лет, чем указано в вакансии, но за это время самостоятельно довела продукт от нуля до продакшна и участвовала в архитектурных решениях по доступу — готова обсудить тестовое задание или техническое интервью, чтобы показать это напрямую."
  • Подчеркнуть релевантность именно для GARNET: JD явно упоминает "участвовать в переходе на Vue.js 3" — у кандидата уже есть прямой опыт именно такого перехода (РМК — legacy-проект на Vue 3, где она системно исправляла технический долг).

План "если понизят уровень":

  • Junior+/Middle-минус компенсация приемлема, если она всё равно перекрывает целевой минимум кандидата (100 000+ ₽ на руки — см. блок D, рыночная Middle-вилка Vue в Москве заметно выше этого порога).
  • Договориться о пересмотре грейда через 6 месяцев по итогам участия в переходе на Vue 3.

Но, как и в 010: вопрос грейда становится второстепенным на фоне блокера локации — компания предлагает только гибридный формат в Москве, без варианта Тулы или полной удалёнки.

D) Компенсация и спрос

WebSearch ("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

Источники: sborka.work, enigmai.ru, career.hh.ru (см. Sources ниже). Москва в целом платит на 15-30% больше, чем регионы — фактор, полностью нейтрализуемый требованием жить/присутствовать в Москве.

Оценка для кандидата: Middle-вилка (252 000-330 000 ₽ на руки после НДФЛ) значительно перекрывает целевой минимум кандидата (100 000-120 000+ ₽ на руки) — по чистой компенсации это была бы одна из самых сильных вакансий в пакете. Плюс сильный корпоративный соцпакет МТС (ДМС со стоматологией с 1-го месяца, страхование от несчастных случаев, 28+3 дня отпуска за ненормированный график, корпоративный университет).

Но: вся эта компенсационная привлекательность недостижима без переезда/регулярных поездок в Москву, которые кандидат исключает. Формально высокая компенсация не конвертируется в реальный оффер при данном формате работы.

Gross/Net не указаны явно в JD — типично для МТС, обсуждается на собеседовании.

E) План персонализации

# Раздел Текущее состояние Предлагаемое изменение Почему
1 Summary Vue 3 + Flutter общий фокус Сузить до Vue 3 + Composition API + TS, явно упомянуть опыт "перехода legacy → Vue 3" (проект РМК) JD явно ищет опыт перехода на Vue 3 — прямое попадание
2 Порядок буллетов РМК Баги, WebSocket, мотивация, Git — вперемешку Вынести "работа с legacy Vue-проектом и системный рефакторинг" в заголовок раздела Совпадает с "переход на Vue.js 3" и "поддерживать существующий функционал"
3 UI/UX буллеты Разбросаны по разным продуктам Собрать в один компактный блок ("самостоятельные UI/UX-редизайны при отсутствии дизайнера в команде") JD явно просит "совместно с дизайнером прорабатывать UI/UX" — кандидат показывает дизайн-чутьё даже без дизайнера в команде
4 Skills SCSS/LESS отсутствуют Добавить: "CSS-препроцессоры и методологии — быстро осваиваю (опыт с Tailwind CSS, shadcn-vue)" Закрыть формальный пробел честно, без выдумывания опыта с конкретными препроцессорами
5 Локация в форме — Указать явно с первого контакта: "Тула, удалённо или гибрид/офис только в Туле; переезд и командировки не рассматриваю" Экономит время обеих сторон при явном офисном/гибридном требовании в Москве

F) План собеседований

# Требование JD История STAR+R S T A R Reflection
1 Переход на Vue.js 3 Legacy-проект РМК на Vue 3 Проект накопил технический долг (баг с замыканием, нестабильная клавиатура) Стабилизировать и модернизировать legacy-код Исправила ~20 багов, включая сложный кейс с утечкой реактивных переменных в глобальном классе Кассовый модуль стал стабильным для ежедневной работы кассиров Осознала, как аккуратно рефакторить, не ломая рабочий процесс живых пользователей
2 Сложные интерфейсы График курьеров на vue-cal Расписание вносили вручную SQL-запросами по заявке логистики Спроектировать drag-and-drop календарь на Vue 3 Логистика получила самостоятельное управление графиком без участия разработчиков Устранена зависимость логистики от разработчиков в рутинной задаче Поняла ценность самообслуживания для непрофильных отделов
3 Веб-безопасность / архитектура RBAC в ЕКОМ Нужно было разграничение доступа между отделами Спроектировать ролевую модель, опираясь на профильное ИБ-образование Реализовала и объяснила модель бэкенд-команде Модель работает, разграничение соблюдается Подтвердила, что ИБ-бэкграунд — реальное прикладное преимущество, не только формальность
4 Совместная работа с дизайнером / UI/UX Редизайн кнопки «Избранное» и блока информации о заказе Не было штатного дизайнера, но интерфейс требовал доработки Самостоятельно спроектировать более удобные элементы Кнопка стала крупнее и удобнее, блок компактнее Оба изменения приняты в продакшн Развила интуицию, когда решение можно принять самой, а когда нужен профильный дизайнер
5 Поддержание качества кода Внедрение Playwright E2E + Vitest unit-тестов Проект РМК не имел автотестов Внедрить тестовое покрытие поэтапно Playwright на этапе внедрения, Vitest — для Vue-компонентов ЕКОМ Растущее покрытие снижает риск регрессий Осознала важность постепенного внедрения тестов в уже работающий проект, а не "большого взрыва"
6 Оптимизация существующих решений Постраничная загрузка «Избранное» Раздел не открывался — все товары грузились одним запросом Реализовать pagination совместно с бэкенд-разработчиком Жалобы пользователей прекратились Прямое улучшение производительности и UX Поняла, что производительность — часть UX, а не отдельная техническая метрика

Рекомендуемый кейс: РМК (legacy-проект, переход на Vue 3, рефакторинг) — прямое попадание в формулировку JD "участвовать в переходе на Vue.js 3" и "поддерживать существующий функционал".

Вопросы-ловушки:

  • "У вас меньше 3 лет опыта — почему откликаетесь?" → Акцент на плотность ответственности и прямое совпадение с задачей "переход на Vue 3" (уже делала это на РМК).
  • "Готовы к гибридному графику в Москве?" → Обязательный честный ответ: "Нет, база — Тула, переезд и командировки не рассматриваю. Готова обсуждать удалённый формат, если он возможен для этой роли."

G) Легитимность вакансии

Сигналы свежести: Дата публикации не показана; статус отклика — активный ("Откликнуться" + встроенная форма "Отклик на вакансию"), что подтверждает открытый статус на момент извлечения.

Качество описания: Высокое. Указан конкретный проект (GARNET), конкретный стек (Vue.js 3 + Composition API, SCSS/LESS, Webpack/Vite), явная задача (переход с более старой версии на Vue 3), реалистичные и разнообразные требования (от вёрстки до алгоритмов и веб-безопасности). Список бенефитов детальный и специфичный для МТС, с явным указанием "+3 дополнительных дня за ненормированный рабочий день" — конкретная деталь, которую сложно взять из шаблона.

Компания: та же головная структура — ООО «МТС Веб Сервисы», официальный портал job.mts.ru. Ничего подозрительного не обнаружено. WebSearch по репутации компании не проводился — нет сигналов, требующих проверки (бюджет WebSearch использован на Block D, общий для всех трёх вакансий пакета).

Вывод: Высокая уверенность.


Извлечённые ключевые слова

Vue.js 3, Composition API, TypeScript, HTML5, CSS3, JavaScript ES6+, SCSS, LESS, адаптивная вёрстка, кросс-браузерность, Git, веб-безопасность, Webpack, Vite, UI/UX, алгоритмы, структуры данных, архитектура, паттерны проектирования, сложные интерфейсы, GARNET, переход на Vue 3


Cover Letter Draft

Draft generated at evaluation time. Complete via /career-ops cover mts-middle-frontend-vue-garnet 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) Проект GARNET и переход команды на Vue.js 3 — именно та задача, которую я уже решала на legacy-проекте: стабилизация и модернизация Vue-кода без остановки продакшна.

Profile introduction Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). Параллельно с продуктом, построенным с нуля (ЕКОМ), веду legacy-проект на Vue 3 (РМК), где системно закрываю технический долг и внедряю тестовое покрытие. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC), что напрямую перекликается с требованием "знания веб-безопасности" в вакансии.

Key achievements (selected from cv.md — exact wording preserved)

  • Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
  • Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами, опираясь на профильное ИБ-образование.
  • График курьеров на базе календаря vue-cal с drag-and-drop — заменил ручной ввод расписания SQL-запросами разработчиков.
  • Редизайн блока информации о заказе и кнопки «Избранное» — самостоятельное проектирование интерфейса в компании без штатного дизайнера.

Problems I will solve (placeholder — requires company research + your input)

To be completed: какие задачи стоят перед GARNET в рамках перехода на Vue 3 (миграция компонентов, производительность, совместимость)? Как бы вы к ним подошли?

Closing Готова обсудить детали в удобное время. Отдельно хочу сразу обозначить: моя база — Тула, переезд и командировки не рассматриваю; открыта к обсуждению удалённого формата, если он применим к этой позиции.


Gaps flagged:

  • Локация (критично): роль заявлена как гибридная в Москве. Кандидат не переезжает и не рассматривает командировки — прояснить с рекрутером в первом контакте.
  • Уровень: JD просит от 3 лет опыта; у кандидата ~1.5-2 года. Обсуждается в блоке C.
  • SCSS/LESS: не в CV явно — обозначить как быстро осваиваемую зону, не как готовый навык.

JD keywords to mirror (extracted for ATS + human read) Vue.js 3, Composition API, TypeScript, переход на Vue 3, веб-безопасность, сложные интерфейсы, UI/UX, адаптивная вёрстка, Git, рефакторинг


Run /career-ops cover mts-middle-frontend-vue-garnet to complete angles, confirm company research, and generate the PDF.


Sources (WebSearch, Block D)