Files
career-ops-vbleroy/reports/056-rtk-tsod-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

23 KiB
Raw Permalink Blame History

Оценка: РТК-ЦОД — Ведущий фронтенд-разработчик (React)

Дата: 2026-07-07 Архетип: Frontend-разработчик (React / Next.js / GraphQL) — НЕ входит в целевые архетипы кандидата. Ближайшие: Frontend Developer (Vue.js) [primary], Fullstack Developer (Vue + Node.js) [adjacent] Балл: 1.8/5 Legitimacy: High Confidence URL: https://career.habr.com/vacancies/1000167021 PDF: not generated (score below 3.0 gate)


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

Параметр Значение
Архетип (по _profile.md) Не совпадает ни с одним целевым архетипом. Ближайшие: Frontend (Vue.js) — primary; Fullstack (Vue+Node) — adjacent. Реальный стек роли — другая экосистема (React)
Domain Frontend, enterprise (личный кабинет + корпоративный сайт, headless CMS)
Function Build (разработка) + частичный ownership архитектуры (SSR, UI Kit)
Seniority Senior / Ведущий
Формат работы Гибрид или удалённо (Москва)
Размер команды Не указан явно в JD
Оформление ТК РФ, официальное
TL;DR Ведущая позиция на React/TypeScript/Next.js/GraphQL в личном кабинете и на корпоративном сайте дочерней структуры Ростелекома — стек и уровень не совпадают с профилем кандидата (Vue 3 / Middle)

Vibe команды (качественный сигнал, не влияет на числовую оценку): судя по формулировкам JD, это крупная корпоративная структура (дочка ПАО «Ростелеком») с акцентом на стабильность, льготы и формализованный рост через «корпоративный университет». Прямых сигналов о живой автономной команде, культуре RFC/архитектурных обсуждений, парном программировании или гибком графике в тексте нет — упоминается только формат «гибрид или удалённо» без деталей политики. Недостаточно данных в JD, чтобы оценить темп принятия решений и уровень бюрократии — стоит уточнить на собеседовании, если решение подавать всё же принято.


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

Прочитан cv.md. Сопоставление требований JD с точными строками резюме:

Требование JD Совпадение в CV Статус
JavaScript «Языки программирования: JavaScript, TypeScript, HTML5/CSS3, Dart» ✅ Прямое совпадение
TypeScript «Vue 3, Composition API, TypeScript, Pinia» (ЕКОМ) ✅ Прямое совпадение
React — ❌ Не упоминается ни в одном проекте
Next.js / SSR Только «Быстро осваиваю: Nuxt» (не подтверждённый опыт, wishlist) ❌ Нет коммерческого опыта SSR
GraphQL «REST API, WebSocket/WSS» — есть API-интеграция, но не GraphQL ❌ Нет опыта GraphQL
HTML/CSS, Tailwind, UI Kit «Tailwind CSS, shadcn/shadcn-vue, TanStack Table» ✅ Совпадение (другой UI-стек, но принцип компонентных систем общий)
Git «Git, GitLab, CI/CD... Внедрила Feature Branching в Git (GitLab), обучила коллегу» ✅ Прямое и сильное совпадение
Unit/component-тестирование «Vitest (unit-тесты Vue-компонентов), Storybook, Playwright E2E» ✅ Прямое совпадение (другой фреймворк, тот же навык)
Компоненты и hooks Composition API (Vue) — концептуально близко к React hooks (composable reactive state), но не то же самое ⚠️ Частичное/переносимое
Интеграция API, отладка (DevTools) «Диагностировала причину... через постраничную загрузку», «сложный кейс с замыканием» (РМК) — реальный опыт диагностики багов ✅ Совпадение по навыку отладки
Понимание frontend-архитектуры «Frontend ЕКОМ разработан с нуля», проектирование RBAC ✅ Совпадение (архитектурный опыт есть, но не в React-экосистеме)
Кросс-командная коммуникация «Кросс-командное взаимодействие (логистика, бэкенд, техподдержка)» ✅ Прямое совпадение

Пробелы

  1. React (hard blocker). Ни один проект в CV не использует React. Это не nice-to-have — JD прямо требует «уверенное знание React» для Ведущей позиции. Смежный опыт (Vue 3 Composition API) даёт концептуальный мостик (реактивность, компонентная модель), но не заменяет продакшн-опыт с JSX, React hooks API, экосистемой (React Router, state-менеджеры типа Redux/Zustand).
  2. Next.js / SSR (hard blocker). Нет коммерческого опыта серверного рендеринга. Nuxt в CV указан только как «быстро осваиваю» — это заявка на потенциал, не на готовый навык.
  3. GraphQL (hard blocker для Lead-уровня). Опыт кандидата — REST + WebSocket. GraphQL — отдельная экосистема (schema, resolvers, Apollo/urql на клиенте), не покрывается REST-опытом.
  4. Стратегия закрытия: Пробелы 1-3 — это не то, что закрывается фразой в сопроводительном или пет-проектом за неделю: JD хочет человека, который сразу ведёт архитектуру SSR-приложения и GraphQL-интеграции. Пет-проект на React/Next.js мог бы частично закрыть пробел для позиции Junior/Middle React, но не для «Ведущего» — там нужен подтверждённый продакшн-опыт.

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

  1. Уровень в JD: Ведущий (Senior/Lead) — роль подразумевает самостоятельное владение архитектурой в двух продуктовых зонах (личный кабинет + сайт), включение SSR-миграции и GraphQL-интеграции, участие в релизах. Естественный уровень кандидата: Middle — по config/profile.yml архетип «Frontend Developer (Vue.js)» зафиксирован как Middle. Даже в своей сильнейшей экосистеме (Vue) кандидат не Senior/Lead: коммерческий опыт — с ноября 2024 (Здравсервис), около 8 месяцев на момент оценки, плюс более раннее университетское проектное участие (ТулГУ, не индустриальный опыт).

  2. План «продать senior без обмана»: Реалистично — не сработает для этой роли. Сильные лидерские сигналы у кандидата реальны: она спроектировала фронтенд ЕКОМ с нуля, самостоятельно продумала и объяснила бэкенд-команде модель RBAC, продвинула Feature Branching и обучила коллегу с 11-летним стажем, добилась включения в стратегическое планирование спринтов. Это поведенческие маркеры уровня «выше Middle». Но они полностью в экосистеме Vue/Flutter — ни один из них не демонстрирует владение React/Next.js/GraphQL, которые JD требует «уверенно» с первого дня. Лидерский трек-рекорд не компенсирует отсутствие стека для Lead-позиции конкретно на React.

  3. План «если понизят уровень»: Даже гипотетическое понижение до Middle/Junior React не решает основную проблему — кандидат тогда учил бы React/Next.js/GraphQL «в процессе», а JD прямо ищет уверенное знание этого стека уже сейчас, не потенциал к обучению. Понижение уровня не устраняет технологический разрыв, только временно снижает ожидания по объёму ответственности.

Итог блока C: Комбинация «неверный технологический стек» + «разрыв в 1-2 грейда» — оба блокера одновременно, ни один не закрывается стандартными приёмами (переформулировка резюме, сопроводительное письмо, короткий пет-проект).


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

Показатель Значение Источник
Зарплата в JD Не указана напрямую; Хабр Карьера показывает «зарплата похожих специалистов»: 280 000–437 000 ₽ (по всей видимости gross) Вакансия
Net-эквивалент (× 0.87) ≈ 243 600 – 380 190 ₽/мес на руки Расчёт: gross × 0.87 (стандартный НДФЛ 13%; реальная ставка может отличаться)
Рыночный контекст, Senior frontend (2026) Медиана Senior-разработчиков в РФ — около 550 000 ₽ (по некоторым источникам архитектор/principal 450-700 тыс.); типичный диапазон Senior — 270-410 тыс. ₽ Практикум/аналитика зарплат Frontend 2026
Хабр Карьера, React frontend (все уровни) ~258 500 ₽ (медиана по выборке, вероятно смешивает грейды, не только Senior) career.habr.com/salaries
Оформление ТК РФ, официальное JD (+0.3 к стабильности по правилам оценки РФ)
Бенефиты ДМС, корпоративный университет, корпоративный спорт, корпоративная мобильная связь JD

Вывод: диапазон значительно выше целевого (100 000–120 000+ ₽ на руки) — комп был бы привлекателен, если бы кандидат закрывала требования. Но при текущем технологическом разрыве (React/Next.js/GraphQL с нулевым коммерческим опытом на роль уровня Lead) этот комп практически недостижим — компания нанимает на подтверждённую экспертизу, а не на потенциал.


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

Учитывая балл ниже порога 3.0 (гейт PDF) и структурный (не косметический) разрыв в стеке и уровне, персонализация CV/LinkedIn под эту конкретную вакансию не рекомендуется. Если кандидат всё же решит откликнуться (например, ради интервью-практики или из любопытства к компании), минимальные точки опоры:

# Раздел Текущее состояние Предлагаемое изменение Почему
1 Summary Ведёт с Vue 3 + Flutter Подчеркнуть JS/TS фундамент и Composition API как переносимый навык на компонентные фреймворки Единственный реальный мостик к React-стеку
2 Skills Vue-специфичные библиотеки на первом месте Поднять «быстро осваиваю: любые UI-киты/дизайн-системы» ближе к началу Сигнал открытости к смене стека, честно (не выдаёт несуществующий React-опыт)
3 Cover letter — Явно признать отсутствие React/Next.js опыта, но аргументировать через скорость обучения (Flutter выучен «с нуля» за 8 месяцев до продакшна) Честность + фактическое доказательство скорости онбординга в новый стек

Топ-изменений для LinkedIn/hh.ru — не применимо; риск того, что рекрутер отклонит на этапе резюме из-за явного отсутствия React, слишком высок, чтобы оптимизация имела смысл здесь.


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

Даже при низком балле — банк историй STAR+R на случай, если кандидат решит подавать (например, чтобы потренироваться объяснять смену стека):

# Требование JD История STAR+R S T A R Reflection
1 Понимание frontend-архитектуры Разработка ЕКОМ с нуля Внутренняя система логистики без фронтенда Спроектировать SPA с нуля Vue 3 + Composition API + Pinia, WebSocket-интеграция Логисты сами управляют графиком без разработчиков Поняла, как выбор архитектуры (Composition API вместо Options) влияет на масштабируемость команды из 4 человек
2 Компонентные системы / hooks-подобная логика RBAC-модель в ЕКОМ Разграничение доступа логистика/заказы Спроектировать ролевую модель Использовала ИБ-образование, объяснила модель бэкенд-команде Бэкенд принял модель без переделок В следующий раз документировала бы модель раньше, до начала обсуждения с бэкендом
3 Отладка / DevTools Баг с замыканием на РМК Клавиатура переставала работать Найти причину утечки реактивной переменной Отследила передачу переменной в глобальный класс биндинга клавиш Баг исправлен, клавиатура стабильна Это подчеркнуло риски глобального состояния — стала осторожнее с shared mutable state
4 Тестирование (unit/component) Внедрение Vitest и Playwright Отсутствие тестов на легаси РМК Добавить покрытие Vitest для компонентов, Playwright для E2E Тесты внедряются поэтапно, часть уже покрыта Осознала, что внедрение тестов на легаси требует поэтапного плана, а не «всё сразу»
5 API-интеграция WebSocket-оповещения в реальном времени Не было видимости, сколько аптек онлайн Внедрить WSS-канал оповещений Реализовала клиент WebSocket, статус прочтения Впервые видно ~1200 аптек в реальном времени Поняла важность fallback-логики при разрыве соединения — на будущее добавила бы reconnect-стратегию явно
6 Кросс-командная коммуникация Продвижение Feature Branching Хаотичные релизы, зависшие фичи Внедрить git flow и обучить команду Обучила коллегу с 11-летним стажем, внедрила процесс Команда перешла на стабильные еженедельные релизы Узнала, что техническое внедрение процесса требует не меньше коммуникационных усилий, чем самого кода

Рекомендуемый кейс для показа: ЕКОМ (график курьеров + RBAC) — лучше всего показывает архитектурное мышление и самостоятельность, даже вне React-контекста.

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

  • «У вас нет опыта с React — почему откликнулись на Lead-позицию?» → Честный ответ: признать разрыв, но подчеркнуть скорость обучения нового стека (пример — Flutter с нуля до продакшна за несколько месяцев) и переносимые архитектурные навыки (RBAC, компонентный дизайн). Не оправдываться, не преувеличивать переносимость Composition API → React hooks как «то же самое».
  • «Как вы относитесь к тому, что позиция для Senior/Lead, а вы Middle?» → Не спорить с грейдом; предложить обсудить траекторию роста и честно обозначить, что закрытие технологического разрыва потребует времени.

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

Tier: High Confidence

Сигналы:

  • Качество описания: Структурированный, детальный текст (две продуктовые зоны, конкретный стек, конкретные обязанности) — не шаблонный/пустой листинг.
  • Компания: РТК-ЦОД — управляющая компания центра компетенций ПАО «Ростелеком» по дата-центрам, облачным платформам и CDN. Подтверждено независимым поиском: есть страница компании на career.habr.com/companies/rt-dc, официальный сайт rt-dc.ru, активный профиль работодателя на hh.ru (31 открытая вакансия), отзывы сотрудников на нескольких независимых площадках (Dream Job, Indeed) — компания реальная и активно нанимающая, не фиктивная.
  • Репост-проверка: По data/scan-history.tsv эта вакансия (URL https://career.habr.com/vacancies/1000167021) встречена впервые сегодня (2026-07-07), добавлена один раз. Есть отдельная более ранняя запись того же дня для той же компании РТК-ЦОД, но с другой ролью («Разработчик TypeScript», канал runello_rus_typescript) — не дубликат этой вакансии, скорее сигнал, что компания одновременно набирает несколько frontend/JS-позиций (положительный сигнал активного найма, не red flag репоста).
  • Рыночный контекст роли: Диапазон комп (280-437 тыс. ₽ gross по данным Хабра) согласуется с независимыми оценками рынка Senior frontend в 2026 (270-410 тыс. ₽ базовый Senior-диапазон) — цифры не выглядят завышенными или подозрительно заниженными.
  • Свежесть: Не проверена через Playwright (batch-режим, только WebFetch/WebSearch) — не может быть подтверждена как «точно активна на момент чтения этого отчёта», но нет и сигналов истечения (сама страница вернула полный, живой текст вакансии, а не заглушку/404).

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

JavaScript, TypeScript, React, Next.js, GraphQL, HTML5, CSS3, Git, unit-тестирование, компонентное тестирование, hooks, состояние компонентов (state management), интеграция API, DevTools, отладка (debugging), frontend-архитектура, server-side rendering (SSR), headless CMS, Strapi, UI Kit, личный кабинет, релизный процесс, коммуникация в команде