Files
career-ops-vbleroy/reports/046-x5-tech-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

16 KiB
Raw Permalink Blame History

Оценка: X5 Tech — Senior Frontend Developer

Дата: 2026-07-07 Архетип: Frontend-разработчик (React/Redux) — смежный с целевым архетипом (Vue.js), не совпадает по стеку Балл: 1.0/5 URL: https://rabota.x5.ru/vacancies/210ab754-166e-4775-a48f-bfba9d75c2c3 PDF: не создан (балл < 3.0) Legitimacy: Proceed with Caution


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

Параметр Значение
Архетип Frontend-разработчик (React/Redux) — смежный, не Vue
Domain Frontend / retail-tech (e-commerce/внутренние системы X5)
Function Build
Seniority Senior, 3+ года коммерческого опыта
Формат работы Офис, Москва (ул. Коровий Вал, 5, стр. 1). Удалёнка не упомянута
Размер команды Не указан
Оформление Не указано в JD
TL;DR Senior React/Redux-позиция в X5 Tech в офисе в Москве без упоминания удалёнки — жёсткий блокер по локации (кандидат в Туле, без переезда) и полное расхождение стека (React вместо Vue) делают роль неподходящей несмотря на сильный бренд компании.

Vibe команды: судя по формулировкам JD ("участие в оценке и декомпозиции задач", "обоснование выбора технологий", "участие в проектировании архитектуры") — команда даёт разработчикам голос в технических решениях, что похоже на сигнал автономии/ownership. Явных упоминаний менторства, code review культуры или гибкого графика в тексте нет — недостаточно данных, стоит уточнять на собеседовании.

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

Требование JD Совпадение в CV
JavaScript/TypeScript Прямое совпадение — «Языки программирования: JavaScript, TypeScript»
3+ года SPA на React Нет совпадения. cv.md не содержит коммерческого опыта с React — только Vue 3 (ЕКОМ, РМК) и Flutter
Redux/MobX Нет совпадения. В CV — Pinia (Vue-экосистема), концептуально похожий state management, но не тот же инструмент
Поддержка читаемости кода Частичное совпадение — Feature Branching в GitLab, обучение коллеги версионированию, переход команды на стабильные релизы
Обоснование выбора технологий Частичное совпадение — самостоятельно спроектировала и объяснила бэкенд-команде модель RBAC, приводя обоснование выбора подхода
Figma Частичное совпадение — самостоятельный редизайн UI (кнопка «Избранное», компоновка заказа), отрисовка app-иконок, но без явного упоминания Figma в CV
Bonus: дизайн-системы (Ant Design) Смежное — опыт с shadcn/shadcn-vue, но не Ant Design
Bonus: backend/инфраструктура Частичное совпадение — Node.js/Express/MongoDB (хакатон, проект ТулГУ), WebSocket

Пробелы:

  1. React/Redux — hard blocker. Это ядро стека роли (SPA на React 3+ года). У кандидата нет коммерческого React-опыта. Смежные концепции (компонентная архитектура, реактивность, state management через Pinia) переносимы, но честно представить это как «опыт с React» нельзя — это будет фабрикацией. План закрытия: в сопроводительном письме можно упомянуть перенос архитектурных паттернов Vue → React как способность быстро адаптироваться, но это не закрывает требование 3+ лет.
  2. Локация — HARD BLOCKER. Офис в Москве без упоминания удалённого формата. По политике _profile.md: офис/гибрид вне Тулы без опции удалёнки = балл 1.0 независимо от технического совпадения. Это определяющий фактор оценки.
  3. Seniority gap. JD требует Senior (3+ года), естественный уровень кандидата — Middle (~1.5-2 года коммерческого опыта).

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

Уровень в JD: Senior (3+ года SPA на React). Естественный уровень кандидата: Middle, причём в другом стеке (Vue, не React).

Из-за жёсткого блокера по локации (офис в Москве, кандидат в Туле без возможности переезда) и одновременного расхождения по стеку и по уровню, стратегия «продать senior без обмана» здесь неприменима — комбинация факторов делает роль нерелевантной вне зависимости от позиционирования.

Рекомендация: явно не откликаться. Балл 1.0/5 — ниже порога 4.0, установленного AGENTS.md (Ethical Use). Причина — не единичный пробел, а жёсткий локационный блокер поверх расхождения по стеку. Единственный сценарий, где стоит рассмотреть эту роль — если появится подтверждённая удалённая опция и кандидат готова инвестировать время в изучение React с нуля; ни то, ни другое не подтверждено JD.

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

Зарплата в вакансии не указана («условия обсуждаются индивидуально»).

Источник Данные
hh.ru (февраль 2026, по WebSearch) Медиана Senior Frontend в Москве — ≈287 500 ₽/мес
Яндекс.Практикум / Mail.ru (по WebSearch) Senior frontend: 270 000–410 000 ₽/мес, у Mail.ru — ≈329 000 ₽/мес
Отзывы сотрудников X5 Tech (Хабр Карьера / Dream Job, по WebSearch) Отмечают белую зарплату, годовую/квартальную премию, ДМС и обучение; но регулярные жалобы на отсутствие прозрачных критериев роста зарплаты и на нерегулярную индексацию

Gross vs Net: JD не уточняет, но рыночные данные выше — как правило gross. Ориентировочно net ≈ gross × 0.87.

Целевой диапазон кандидата — 100 000–120 000+ ₽/мес на руки, что существенно ниже рыночной Senior-вилки (287k+ gross) — с точки зрения голой цифры комп выглядел бы привлекательно, если бы не офисный формат в другом городе, который делает вопрос компенсации нерелевантным.

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

Не применимо в полном объёме — при жёстком локационном блокере инвестировать время в тонкую персонализацию CV/LinkedIn под эту конкретную роль нецелесообразно. Если кандидат всё же решит откликнуться (например, ради нетворкинга или пробы себя в React), из общих рекомендаций:

# Раздел Текущее состояние Предлагаемое изменение Почему
1 Summary Акцент на Vue 3 + Flutter Добавить фразу про перенос архитектурных паттернов между фреймворками Показать адаптивность при явном отсутствии React
2 Skills Pinia указана как основной state management Добавить формулировку «Component-based SPA architecture (Vue 3), transferable state management patterns» Снизить риск автоматического отсева по ключевому слову Redux

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

Учитывая рекомендацию не откликаться, привожу сокращённый набор историй (не полные 6-10) — на случай, если кандидат решит зайти на собеседование ради опыта или нетворкинга:

# Требование JD История STAR+R S T A R Reflection
1 Обоснование выбора технологий Проектирование RBAC в ЕКОМ В команде без опыта проектирования моделей доступа нужно было внедрить разграничение прав между отделами Спроектировать и защитить модель авторизации перед бэкенд-командой Использовала профильное ИБ-образование, спроектировала ролевую модель, объяснила её принцип и отличие от смежных подходов Модель принята и внедрена, отделы (логистика/заказы) корректно разграничены Поняла, что даже без формального тимлид-опыта можно вести техническое решение, если аргументация выстроена системно
2 Участие в декомпозиции и оценке задач Планирование спринтов в Здравсервис Приоритеты команды регулярно терялись/забывались Вернуть фокус на цели, которые теряются в потоке задач Неоднократно поднимала вопрос на планировании, инициировала возврат к постановке целей на полгода/год Руководство вернулось к практике целеполагания, PO стал привлекать её к формулировке задач Осознала ценность проактивной коммуникации о процессе, а не только о коде
3 Поддержка читаемости и стабильности кода Внедрение Feature Branching и обучение коллеги Команда работала без единой ветки-стратегии, релизы были нестабильны Внедрить git flow и обучить команду Внедрила Feature Branching, лично обучила коллегу с 11-летним стажем Команда перешла на стабильные еженедельные релизы, снизилось число «зависших» фич Убедилась, что процессные изменения требуют такого же терпения, как и технические

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

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

  • «Почему у вас нет коммерческого опыта с React?» → честно: «Мой основной коммерческий стек — Vue 3, но архитектурные принципы (компоненты, реактивность, state management) переносятся; готова закрыть разрыв, если для вас важнее фундаментальное понимание SPA, чем конкретный фреймворк.»
  • «Как вы отнесётесь к переезду/офису, если удалёнка не предусмотрена?» → честно, без смягчения: «Не рассматриваю переезд и командировки — это принципиальное ограничение.» (см. _profile.md)

G) Посадочная легитимность (Posting Legitimacy)

Assessment: Proceed with Caution

Сигнал Наблюдение Вес
Свежесть публикации check-liveness.mjs вернул статус "uncertain" (headed fallback): контент есть, но кнопка отклика не распознана автоматически — вероятно, из-за SPA-рендеринга формы, а не признак закрытой вакансии Neutral
Качество описания Конкретные технологии (React, Redux/MobX, Figma), точный адрес офиса, конкретные обязанности (планирование, архитектура, code review) — не шаблонный текст Positive
Отсутствие даты публикации и зарплаты Дата постинга не указана, зарплата — «обсуждается индивидуально» Neutral/Concerning
Сигналы найма компании По отзывам сотрудников (Хабр Карьера, Dream Job) — жалобы на непрозрачный пересмотр зарплаты, но явных сигналов massive layoffs/hiring freeze не найдено Neutral
Повторные постинги В data/scan-history.tsv эта вакансия встречается впервые (без повторов за 90 дней) Neutral
Рыночный контекст роли Senior frontend в крупном ритейл-техе — обычная позиция, закрывается в разумные сроки (4-8 недель) Positive

Context Notes: Отсутствие определяемой кнопки Apply в автоматической проверке типично для SPA-страниц с формой на JS — не считаю это признаком фиктивной вакансии, содержание страницы подробное и специфичное.


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

React, Redux, MobX, JavaScript, TypeScript, SPA, Figma, Ant Design, code review, архитектура приложений, оценка задач, декомпозиция, поддерживаемость кода, обоснование выбора технологий, backend, инфраструктура, X5 Tech, Москва, офис