Files
career-ops-vbleroy/reports/038-mts-mwstables-2026-07-07.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

12 KiB
Raw Permalink Blame History

Оценка: МТС (МТС Веб Сервисы) — Fullstack developer React/Node.JS [MWS Tables]

Дата: 2026-07-07 Архетип: Fullstack Developer (Vue + Node.js) — adjacent fit (роль на React, не Vue — см. пробелы) Балл: 1.9/5 URL: https://job.mts.ru/vacancy/673059942004951088 PDF: не создан (балл ниже порога 3.0) Legitimacy: Proceed with Caution


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

Параметр Значение
Архетип Fullstack Developer (React/Node.js) — родственный, но не тот же стек, что adjacent-архетип кандидата (Vue + Node.js)
Domain MWS Tables — no-code инструмент для совместной работы с таблицами, гибкая организация данных для кросс-функциональных команд
Function Build
Seniority 3-6 лет опыта, минимум 4 года fullstack-разработки
Формат работы Гибрид с гибкими удалёнными опциями по РФ
Размер команды Не указан
Оформление Не указано явно
Зарплата Не указана
TL;DR Fullstack-роль на React/Node.js с тяжёлым DevOps-компонентом (Docker/K8s/Helm, highload REST API, collaboration-библиотеки типа ShareDB/Yjs) — формат работы приемлем (remote-опция явно указана), но требуемый уровень и глубина backend/DevOps намного превышают "ознакомительный" backend-опыт кандидата.

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

Требование JD Совпадение в CV
Минимум 4 года fullstack-опыта ❌ Пробел — у кандидата ~1.5-2 года коммерческого опыта
React, Node.js, TypeScript ⚠️ Частично — TypeScript ✅ прямое совпадение; Node.js — только "ознакомительный уровень" (Express/MongoDB, хакатон + учебный проект); React — ❌ нет, весь продакшн-опыт на Vue 3
Jest, NestJS Testing Module, Testcontainers, RTA ❌ Пробел — у кандидата Vitest (Vue) и Playwright (E2E), не NestJS-стек
ShareDB, Yjs, Zero One, Electric (collaboration-библиотеки) ❌ Пробел — не упомянуто в CV, узкоспециализированная область
Highload REST API ❌ Пробел — WebSocket/WSS есть (RMK-проект, ~1200 аптек), но highload-специфика (нагрузочное тестирование, масштабирование) не подтверждена
UI-компонентные библиотеки ✅ Смежное совпадение — shadcn/Tailwind, компонентная разработка на Vue
БД и брокеры сообщений ⚠️ Частично — MongoDB упомянут (хакатон, ознакомительный уровень), брокеры сообщений (Kafka/RabbitMQ) не упомянуты
Docker, Kubernetes (K8S), Helm ❌ Пробел — не упомянуто в CV (DevOps-раздел ограничен Git/GitLab/CI/CD рабочим опытом, Linux — пользовательский уровень)
Grafana-дашборды ❌ Пробел — не упомянуто
Git, GitLab ✅ Прямое совпадение

Пробелы:

  1. React vs Vue — как и в 036, это не "пробел, закрываемый фразой", а стек, отсутствующий в продакшн-опыте кандидата.
  2. Backend/DevOps глубина (NestJS, Docker/K8s/Helm, highload API, message brokers) — hard blocker. У кандидата backend-опыт явно маркирован в CV как "ознакомительный уровень" — использовать его как основание для fullstack-роли с K8s/Helm было бы фабрикацией.
  3. Collaboration-библиотеки (ShareDB/Yjs) — узкоспециализированная область без какого-либо пересечения с опытом кандидата.
  4. 4+ года опыта — формальный разрыв почти в 2-2.5 раза от фактического стажа кандидата.

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

Уровень в JD: Middle-Senior fullstack (4+ года, но с требованиями, характерными скорее для крепкого Middle-Senior fullstack-инженера с DevOps-экспертизой). Естественный уровень кандидата для архетипа Fullstack (Vue + Node.js): Adjacent fit — у кандидата есть frontend-driven fullstack-опыт (хакатон, учебный проект НИЦ БиоХимТех), но не backend-driven опыт, который требует эта роль.

Рекомендация: не откликаться. Ни "продать senior без обмана", ни "понижение уровня" здесь не решают проблему — разрыв в первую очередь качественный (отсутствие DevOps/backend-глубины), а не количественный (стаж). Понижение до Middle не убирает требование Docker/K8s/Helm и collaboration-библиотек.

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

Зарплата в вакансии не указана.

Рыночные данные (WebSearch, RU, июль 2026):

Источник Данные
Fullstack (React+Node/TS), Middle, общий рынок 170 000 – 190 000 ₽/мес
Fullstack Middle, Москва 250 000 – 280 000 ₽/мес (по другим оценкам от 180-200 тыс. стартовый диапазон)
Fullstack Senior 500 000 – 750 000 ₽/мес
Средняя зарплата fullstack, Москва (по отзывам сотрудников) ~195 000 ₽/мес

Оценка: Гипотетически компенсация значительно выше таргета кандидата (100 000–120 000+ ₽/мес на руки). Но, как и в случае с 036, это не компенсирует фундаментальный разрыв в требуемых компетенциях (DevOps/backend-глубина), из-за которого вероятность прохождения технического скрининга крайне низкая.

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

Не рекомендуется. Как и в 036, любая попытка представить "ознакомительный уровень" Node.js/Express/MongoDB кандидата как соответствие требованиям highload REST API + Docker/K8s/Helm + collaboration-библиотек была бы прямой фабрикацией опыта, запрещённой правилами системы (AGENTS.md, Source-of-Truth Boundary).

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

Пропущено — при разрыве такого масштаба (backend/DevOps-глубина + узкоспециализированные collaboration-библиотеки + 2.5x разрыв в стаже) содержательная подготовка историй STAR+R не имеет практического смысла.


Vibe команды

JD упоминает "MTS Ocean" — внутреннюю платформу для IT-ресурсов, деплоя и мониторинга, что указывает на развитую внутреннюю инфраструктуру и DevOps-культуру. Явно упомянуты код-ревью и оценка задач в процессе разработки — сигнал вовлечённости в командные решения. Недостаточно данных в JD о конкретной степени автономии или бюрократии процессов — стоит уточнить на собеседовании, если кандидат решит откликнуться.

G) Posting Legitimacy

Assessment: Proceed with Caution

Сигнал Наблюдение Вес
Свежесть / Apply-кнопка check-liveness.mjs вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение не пометило вакансию как архивную явно (в отличие от 036/037/039/040), но и не подтвердило активный статус Neutral/Concerning (смешанный сигнал)
Качество описания Очень конкретный и специфичный технический стек (ShareDB/Yjs/Zero One/Electric, Testcontainers, RTA, Module Federation) — маловероятно, что это generic-шаблон, скорее реальные требования конкретной команды Positive
Зарплата Не указана Neutral
Company Hiring Signals Специфичных сигналов о сокращениях в MWS Tables не найдено; MWS (МТС Веб Сервисы) в целом показал рост выручки на 9.6% в 2025 году и продолжает публично анонсировать новые R&D-направления (Physical AI, март 2026) — позитивный сигнал стабильности компании в целом Positive
Reposting Не проверялось по scan-history.tsv Neutral
Role Market Context Fullstack-роль с узкоспециализированными требованиями (collaboration-библиотеки) может легитимно оставаться открытой дольше среднего из-за узкого пула подходящих кандидатов Neutral

Context Notes: В отличие от 036/037/039/040, WebFetch-извлечение контента для этой вакансии не содержало явного маркера "archived" — сигнал менее выражен, чем у остальных четырёх постов из этой партии, хотя check-liveness.mjs всё равно вернул "uncertain". Специфичность технических требований (конкретные библиотеки, а не общие формулировки) — положительный сигнал легитимности независимо от статуса Apply-кнопки.


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

React, Node.js, TypeScript, Jest, NestJS, Testcontainers, ShareDB, Yjs, Module Federation, Rich Text Editor, Prosemirror, Quill, Lexical, highload, REST API, Docker, Kubernetes, Helm, CI/CD, Grafana, Git, GitLab, MWS Tables, no-code, гибридный формат, удалённые опции


Рекомендация

Балл 1.9/5 — значительно ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.

  1. Стек не совпадает (React vs Vue), как и в 036.
  2. Требуемая DevOps/backend-глубина (Docker, K8s, Helm, highload API, collaboration-библиотеки) кардинально превышает "ознакомительный уровень" backend-опыта кандидата — заявлять соответствие означало бы фабрикацию, запрещённую правилами системы.
  3. Формальный разрыв в стаже (4+ года требуется vs ~1.5-2 года у кандидата).
  4. Формат работы (гибрид с remote-опциями) — единственный полностью проходящий критерий, недостаточен для перевешивания остальных разрывов.