Files
career-ops-vbleroy/reports/008-tbank-react-2026-07-06.md
T
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

150 lines
20 KiB
Markdown
Raw 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.
# Оценка: Т-Банк — Frontend-разработчик (React)
**Дата:** 2026-07-06
**URL:** https://www.tbank.ru/career/it/vacancy/moscow/frontend-developer-react/637c5c46-2c90-4c0b-aef2-42a4ad2addb3/
**Архетип:** Frontend-разработчик (React) — не входит в основные архетипы кандидата (Vue.js/Flutter), близкий архетип по `_shared.md`: "Frontend-разработчик"
**Балл:** 2.0/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (React) |
| Domain | Fintech (интернет-банк, инвестиции, Т-Ж, поиск авиарейсов/отелей, внутренние инструменты) |
| Function | Build (клиентские и внутренние интерфейсы + инструменты) |
| Заявленный уровень | Senior |
| Формат работы | **Удалённый · Любой город** (офис или удалённо — по договорённости) |
| Размер команды | Не указан явно, но описана широкая продуктовая линейка (несколько команд, общий стек, внутреннее фронтенд-сообщество) |
| Оформление | Не указано явно; "аккредитованная IT-компания" упомянута как плюс — косвенный сигнал ТК РФ + льготы аккредитации |
| TL;DR | Senior React-роль в крупном финтехе с полностью гибким удалённым форматом — сильный fit по локации, но кандидат не имеет коммерческого React (обязательное требование) и стаж вдвое короче заявленного порога. |
**Проверка соответствия локации:** JD прямо указывает "Удалённый · Любой город (офис или удалённо по договорённости)" — противоречий с "жёстким правилом локации" из `_profile.md` нет. Формат подходит кандидату из Тулы без переезда и командировок — локация/компенсационное измерение оценивается нормально, без штрафа 1.0.
## B) Совпадение с CV
| Требование JD | Совпадение с CV | Оценка |
|---|---|---|
| Опыт коммерческой разработки на React от 4-х лет | Отсутствует — стек кандидата: Vue 3 (Composition API, Pinia, Vue Router), не React | **Hard gap** |
| Отличное знание JavaScript | "Языки программирования: JavaScript, TypeScript, HTML5/CSS3, Dart" | Совпадает |
| Понимание современного стека веб-разработки | Vite, ESLint, Prettier, Vitest, Storybook, TanStack Table, WebSocket/WSS — современный инструментарий, но на Vue-экосистеме, не React | Частично совпадает (общий уровень инструментальной зрелости) |
| Готовность работать в распределённой команде | "Кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами)" — команда 4 человека, но не географически распределённая в явном виде | Косвенно совпадает |
| (Плюс) TypeScript | "Vue 3, Composition API, TypeScript, Pinia" | Совпадает |
| (Плюс) Unit-тесты | "Vitest (unit-тесты Vue-компонентов)" | Совпадает |
| (Плюс) Node.js | "Backend (ознакомительный уровень): Node.js, Express, MongoDB" — хакатон + учебный проект ТулГУ | Совпадает частично (ознакомительный уровень) |
| (Плюс) CI/CD — GitLab | "Внедрила Feature Branching в Git (GitLab)... команда перешла на стабильные еженедельные релизы"; "DevOps/инфраструктура: Git, GitLab, CI/CD (рабочий опыт)" | Совпадает |
**Пробелы:**
1. **React (hard blocker).** Обязательное требование JD, единственный первый пункт блока "Требования". У кандидата нет ни одного проекта на React — весь коммерческий frontend-опыт на Vue 3.
- Смежный опыт: концептуально React (хуки, компонентный state) ближе к Vue 3 Composition API, чем Angular — реактивные примитивы и компонентная модель во многом пересекаются. Это облегчает потенциальный переход, но не покрывает требование "коммерческий опыт от 4 лет".
- Портфолио-проект на React: отсутствует.
- План: в сопроводительном письме честно указать отсутствие коммерческого React, но подчеркнуть переносимые паттерны (компонентная архитектура, управление состоянием, TypeScript, тестирование).
2. **Стаж (hard blocker).** JD требует 4+ года; фактический опыт кандидата ≈1.5–2 года. Разрыв не закрывается ни фразировкой, ни плюс-требованиями (TS/тесты/Node/CI покрыты, но это "будет плюсом", а не основной барьер).
## C) Уровень и стратегия
1. **Уровень в JD:** Senior (явно указано в шапке вакансии), 4+ года коммерческого React. **Естественный уровень кандидата** для основного архетипа (Vue.js): Middle. Для архетипа React — фактически ниже Middle, так как нет ни одного коммерческого проекта на этом фреймворке.
2. **План "продать senior без обмана":** невозможен честно — блокеры по стеку и стажу одновременны и оба фундаментальны для Senior-роли в крупном финтехе с высокой нагрузкой (интерфейсы "для миллионов пользователей ежедневно").
3. **План "если понизят уровень":** даже гипотетическое понижение до Middle не решает отсутствие React. Реалистичный путь — только если Т-Банк рассматривает кандидатов с сильным Vue-бэкграундом на "переученную" React-позицию, что противоречит явной формулировке "опыт коммерческой разработки на React от 4-х лет" как основному требованию.
## D) Компенсация и спрос
WebSearch (в рамках общего бюджета 5 запросов на вакансию, часть переиспользована для Блока G и для второй Т-Банк вакансии 009 — та же компания):
| Показатель | Значение | Источник |
|---|---|---|
| Senior Frontend (React), медиана по России | 550 000 ₽/мес; React занимает ≈55% рынка frontend-вакансий в 2026 | web search results |
| Senior Frontend, Москва (диапазон) | 270 000–410 000 ₽/мес (по данным Yandex Practicum) | [practicum.yandex.ru](https://practicum.yandex.ru/blog/skolko-zarabatyvayut-frontend-razrabotchiki/) |
| Т-Банк — специфика удалённой оплаты | Полная ставка при работе из Москвы/СПб/hub-городов; для полностью удалённой работы из других регионов возможно снижение на 10–15% | web search results |
| Т-Банк — бонусная структура | Для Senior+ при высокой оценке Performance Review годовой бонус может достигать 3–4 окладов | web search results |
| Зарплата в вакансии | Не указана — "Достойную зарплату — обсудим ее на собеседовании" | JD |
**Специфика РФ:** зарплата не раскрыта в объявлении. Учитывая региональный коэффициент Т-Банка (потенциальное снижение на 10-15% для удалённых сотрудников не из hub-городов, Тула не входит в перечисленные), даже верхний диапазон рынка (270–410 тыс. ₽) для Senior React заметно выше таргета кандидата (100–120 тыс. ₽ на руки) — компенсационно роль выглядит привлекательно, но это не компенсирует отсутствие обязательного стека.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Не переписывать под React — фабрикация опыта, которого нет | Этичность: "keywords reformulated, never fabricated" |
| 2 | Competencies | Vue-ориентированный список | При отклике честно указать TypeScript, компонентную архитектуру, тестирование, GitLab CI/CD как переносимые навыки | Единственная честная точка входа |
| 3 | PDF | — | Не генерировать при балле 2.0/5 | Ниже порога auto-PDF (3.0) |
**Рекомендация:** генерация PDF не оправдана — это Senior-роль с обязательным 4-летним React-опытом, у кандидата которого нет вовсе.
## F) План собеседований
Балл значительно ниже порога уверенного отклика (2.0 < 3.5). Минимальный набор историй на случай отклика:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Понимание современного стека веб-разработки | Внедрение WebSocket-оповещений в РМК | Нужна информация об онлайн-статусе аптек в реальном времени | Внедрить WSS-канал впервые в компании | Реализовала real-time оповещения с отметкой прочтения | Впервые видно, сколько из ~1200 аптек онлайн; половина читает в первые минуты | Реальный опыт с сетевыми технологиями, применимый вне зависимости от фреймворка |
| 2 | Готовность обучаться новым технологиям | Переход Flutter → Vue 3 фронтенд с нуля (ЕКОМ) | Компания нуждалась в новом внутреннем продукте | Освоила Vue 3 экосистему параллельно с Flutter-работой | Frontend ЕКОМ запущен и используется логистикой/поддержкой | Подтверждённая способность быстро войти в новый стек — довод для React, но не замена реального опыта |
**Рекомендуемый кейс:** WebSocket-интеграция в РМК — демонстрирует зрелость в работе с real-time данными независимо от фреймворка. Честно предупредить, что стек — Vue, не React.
**Вопрос-ловушка:** "Почему нет коммерческого React?" → "Мой опыт — Vue 3 в продакшене; React не использовала коммерчески, но принципы компонентного State-management и хуков мне знакомы концептуально. Готова обсудить, насколько команда готова инвестировать время на онбординг."
## G) Легитимность вакансии
**Оценка:** Высокая уверенность
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Дата не показана явно, но URL — актуальный путь (`/career/it/vacancy/moscow/...`), отличный от найденного в `scan-history.tsv` старого пути (`front-end-razrabotka/...`), помеченного `skipped_expired` | Positive (миграция на новую структуру сайта — не признак фантомности) |
| Состояние отклика | Кнопка "Откликнуться на вакансию" активна, встроенная форма | Positive |
| Качество описания | Конкретные продукты (интернет-банк, Т-Ж, поиск авиарейсов, бронирование), явное описание внутреннего инструментария (админки, конструкторы, UI-Kit, микросервисы на Node.js), рабочие практики команды (общий стек, регулярные встречи фронтенд-сообщества, доклады/статьи) — низкая доля типового boilerplate относительно ролевого контента | Positive |
| Реализм требований | "От 4 лет" для Senior React в высоконагруженном финтех-продукте — реалистично, TS/тесты/CI помечены явно как "будет плюсом", а не обязательные — внутренних противоречий нет | Positive |
| Репост | В `scan-history.tsv` найден старый URL этой же роли (`front-end-razrabotka/frontend-developer-react/`) со статусом `skipped_expired` — старая ссылка устарела, появилась новая структура пути | Neutral — типично для реорганизации карьерного сайта крупной компании, не признак множественных фиктивных republish |
| Компания | Т-Банк (экс-Тинькофф) — крупный публичный финтех, множество отзывов сотрудников на career.habr.com/Dream Job (средние оценки 3.3–5.0 в зависимости от команды), явных сигналов о заморозке найма/массовых сокращениях в IT не найдено | Positive |
**Контекст:** Описание существенно более содержательное и специфичное, чем в среднестатистической "рамочной" вакансии — упоминается конкретный продуктовый портфель, размер комьюнити (для похожей Angular-роли — 300+ разработчиков), внутренняя инфраструктура. Дополнительный WebSearch по увольнениям/hiring freeze не проводился отдельно для Т-Банка — использованные запросы (Блок D) косвенно подтвердили отсутствие признаков сокращений в отзывах сотрудников за 2026 год.
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, Node.js, CI/CD, GitLab, unit-тесты, интерфейсы, миллионы пользователей, интернет-банк, инвестиции, микросервисы, UI-Kit, внутренние библиотеки, распределённая команда, удалённо, Senior, коммерческая разработка, ДМС со стоматологией, Т-Банк
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover tbank-react` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Меня заинтересовала позиция Frontend-разработчика (React) в Т-Банке — возможность создавать интерфейсы, которыми пользуются миллионы клиентов ежедневно, в полностью гибком удалённом формате.
**Profile introduction**
Я frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года веду несколько продуктов в аптечной сети «Здравсервис» (~1200 аптек по всей России), включая внутреннюю систему управления заказами и логистикой, разработанную с нуля.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, оповещения доходят практически без задержки.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
- **Разработала с нуля фронтенд внутренней системы ЕКОМ** на Vue 3, TypeScript, Pinia, Vitest, Storybook.
- **Спроектировала ролевую модель авторизации (RBAC)**, опираясь на профильное ИБ-образование.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стоят перед React-командой Т-Банка сейчас? Учитывая отсутствие коммерческого React, какой формат онбординга обсуждать с рекрутёром?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Стек:** нет коммерческого опыта с React (обязательное требование от 4 лет). Критичный разрыв.
- **Стаж:** JD требует 4+ года, фактический опыт кандидата ≈1.5–2 года.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, JavaScript, TypeScript, Node.js, unit-тесты, CI/CD, GitLab, распределённая команда, интерфейсы, миллионы пользователей
---
*Run `/career-ops cover tbank-react` to complete angles, confirm company research, and generate the PDF.*