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

113 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Оценка: 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, Москва, офис