init
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

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

+113
View File
@@ -0,0 +1,113 @@
# Оценка: МТС (МТС Веб Сервисы) — 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-опциями) — единственный полностью проходящий критерий, недостаточен для перевешивания остальных разрывов.