Files
career-ops-vbleroy/reports/072-t-bank-react-junior-perm-2026-07-08.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

141 lines
15 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.
# Evaluación: Т-Банк — Frontend-разработчик React (Junior)
**Fecha:** 2026-07-08
**Arquetipo:** Frontend Developer (React) — off-archetype (primary del candidato es Vue.js)
**Score:** 1.7/5
**Legitimacy:** Proceed with Caution
**URL:** https://hh.ru/vacancy/119867578?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated — run /career-ops pdf t-bank-react-junior-perm to create on demand
**Batch ID:** 7
---
## Machine Summary
```yaml
company: "Т-Банк"
role: "Frontend-разработчик React (Junior)"
score: 1.7
legitimacy_tier: "Proceed with Caution"
archetype: "Frontend Developer (React) — off-archetype"
final_decision: "Skip"
hard_stops:
- "Основной стек — React, у кандидата нет коммерческого опыта на React (только Vue 3, её primary архетип)"
soft_gaps:
- "Уровень Junior — ниже фактического уровня ответственности кандидата (владеет продуктами end-to-end, спроектировала RBAC-модель); junior-компенсация вероятно ниже минимума кандидата (100 000 ₽/мес)"
- "JD крайне лаконичен (нет команды, нет зарплаты, нет деталей о проекте) — сложно оценить реальный контекст роли"
top_strengths:
- "Крепкие JS/TypeScript основы и опыт компонентной архитектуры (Vue 3 Composition API), переносимые на React"
risk_level: "Low"
confidence: "Medium"
next_action: "Не применять; при появлении вакансии на Vue в продуктовых командах Т-Банка (удалённо) — переоценить"
```
## A) Resumen del Rol
| Campo | Valor |
|---|---|
| Arquetipo detectado | Frontend Developer (React) — no coincide con ninguno de los 3 arquetipos objetivo de la candidata (Vue.js, Flutter, Fullstack Vue+Node) |
| Domain | Fintech / Banking (Т-Банк — productos que abarcan banca, viajes, inversiones, entretenimiento, educación) |
| Function | Frontend Developer — interfaces cliente e internas + herramientas de soporte |
| Seniority | Junior (mínimo 1 año de experiencia comercial en JS) |
| Remote | Sí — "на месте работодателя или удалённо" (oficina en Perm, ул. Куйбышева, 95Б, o remoto) |
| Team size | No especificado en el JD; solo se menciona que la comunidad React de la empresa supera los 350 desarrolladores |
| TL;DR | Vacante Junior de Frontend React en el hub de Perm de Т-Банк, con opción remota explícita. La ubicación no es bloqueo (a diferencia de otras vacantes de Т-Банк evaluadas previamente), pero el stack (React, no Vue) sigue siendo un choque directo con el archetype primario de la candidata, y el nivel Junior está por debajo de su alcance real de responsabilidad. |
**Vibe команды (сигнал из JD, не подтверждённый факт):** JD крайне лаконичен — упоминает только "внедрение новых технологий и практик" и "постоянное обучение и повышение квалификации" как часть обязанностей, а также поддержку менторства и платформу "Т-Банк Апгрейд" в бенефитах. Это слабый позитивный сигнал в пользу культуры обучения, но текста недостаточно, чтобы судить об автономии, бюрократии или гибкости — стоит уточнять на собеседовании. Внешние отзывы о бюрократии в компании (см. Блок D) касаются организации в целом, не конкретно этой команды в Perm.
## B) Match con CV
| Requisito JD | Match en CV | Estado |
|---|---|---|
| Опыт коммерческой frontend-разработки с JavaScript от 1 года | cv.md:16-17, 33-51 — с ноября 2024 в «Здравсервис» (~1 год 8 мес.) + фриланс-проект ТулГУ 2022 (~10 мес.) | ✅ Match (con margen amplio) |
| Высшее образование по техническому направлению | cv.md:68-71 — ТулГУ, Институт прикладной математики и компьютерных наук, «Информационная безопасность автоматизированных систем» | ✅ Match |
| React | Sin referencia en cv.md — стек кандидата: Vue 3, Composition API, Pinia (cv.md:85) | ❌ Gap crítico |
| Node.js | cv.md:95 — «Backend (ознакомительный уровень): Node.js, Express, MongoDB» (проект ТулГУ + хакатон) | ⚠️ Match débil — nivel introductorio |
| UI-Kit / librerías internas | cv.md:85 — experiencia con shadcn/shadcn-vue, Tailwind CSS (kits de componentes, aunque no el UI-Kit propietario de Т-Банк) | ⚠️ Match parcial — patrón transferible, no la librería específica |
| Разработка клиентских и внутренних интерфейсов | cv.md:21-38 — desarrolló desde cero el frontend de ЕКОМ (interfaz interna) y trabajó en «Здесь Аптека» (app cliente) | ✅ Match fuerte (conceptualmente, en Vue no React) |
| Внедрение новых технологий и практик | cv.md:44-47 — introdujo Feature Branching, Playwright E2E, versionado de builds en РМК | ✅ Match |
### Gaps y estrategia de mitigación
1. **React (hard blocker)**
- ¿Bloqueador duro o nice-to-have? Duro — es el stack central mencionado explícitamente en el JD, sin mención de Vue en ningún punto.
- ¿Experiencia adyacente demostrable? Sí, parcial: Composition API (Vue) y hooks (React) comparten el mismo modelo mental de UI reactiva y componentización; los fundamentos de JS/TS son agnósticos de framework.
- ¿Proyecto de portfolio que cubra el gap? No — todo el trabajo comercial documentado en cv.md es Vue 3 o Flutter.
- Plan de mitigación: dado que es un puesto Junior, el argumento "aprendo rápido" es más creíble aquí que en un rol Middle/Senior (cv.md:77 — completó un curso de reconversión y pasó a shippear Flutter en semanas). Aun así, no hay garantía de que el proceso de selección de un banco grande acepte un cambio de framework a este nivel de filtro.
2. **Nivel Junior vs. alcance real de la candidata (soft gap, mismatch inverso)**
- A diferencia de otras vacantes evaluadas donde el JD pide más seniority del que tiene la candidata, aquí ocurre lo contrario: el JD pide "1+ año", pero la candidata ya diseñó un frontend completo desde cero (ЕКОМ), diseñó un modelo de autorización RBAC y explicado a un equipo de backend, y mentoreó a un colega con 11 años de antigüedad (cv.md:33-51).
- Riesgo: un puesto Junior probablemente implica menor autonomía y una banda salarial (~55.000-80.000 ₽/mes según Bloque D) muy por debajo de su mínimo declarado (100.000 ₽/mes, config/profile.yml).
- Plan de mitigación: no aplica una estrategia de "vender senior sin mentir" aquí en el sentido habitual — el problema no es convencer al reclutador de mayor nivel, sino que el puesto en sí está diseñado para pagar y dar alcance de Junior.
## C) Nivel y Estrategia
- **Nivel detectado en el JD:** Junior (mínimo 1 año de experiencia comercial).
- **Nivel natural de la candidata:** Middle en ascenso — dueña end-to-end de un producto interno (ЕКОМ) desde cero, con diseño de modelo de autorización (RBAC) y mentoría a un colega senior, pese a ~1.5-2.5 años de trayectoria total.
- **Plan "vender senior sin mentir":** No aplica de forma útil aquí — el JD ya está calibrado a Junior; subir el nivel percibido no cambia la banda salarial ni el stack ofrecido.
- **Plan "si me downlevelan":** Es la situación inversa: la candidata estaría aceptando un downlevel voluntario. Solo tendría sentido si (a) el objetivo fuera exclusivamente aprender React de forma remunerada, y (b) la compensación ofrecida en la entrevista superara su mínimo — algo poco probable dado el rango de mercado para Junior (Bloque D). No se recomienda perseguir esta vacante bajo esa lógica.
## D) Comp y Demanda
| Fuente | Dato |
|---|---|
| JD | Salario no especificado — "Достойную зарплату — обсудим её на собеседовании" |
| WebSearch (Skillbox Media, Habr Career, getgrade.ru) | Salarios de Junior frontend en Rusia en 2026 rondan ~55.000-80.000 ₽/mes en regiones fuera de Moscú; remoto reduce algo la brecha regional (10-15%) pero no la elimina para el nivel Junior |
| WebSearch (dreamjob.ru, enigmai.ru) sobre Т-Банк | Comp de Middle frontend en Т-Банк descrita como fuerte (~257.000+ ₽/mes), pero esa cifra no aplica a Junior; reseñas mencionan buena comida/DMS con estomatología, plataforma de aprendizaje "Т-Банк Апгрейд", pero también quejas de burocracia e indexación salarial insuficiente frente a inflación |
**Score de comp: 1.5/5** — el rango de mercado Junior (~55.000-80.000 ₽/mes) está por debajo del mínimo declarado de la candidata (100.000 ₽/mes, config/profile.yml), y no hay cifra confirmada en el JD que sugiera una excepción positiva.
## E) Plan de Personalización
Dado el score bajo (stack fuera del archetype primario + compensación probablemente por debajo del mínimo), **no se recomienda invertir en personalización de CV/LinkedIn para esta vacante.** Se documentan los cambios que se harían solo por completitud:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---|---|---|---|
| 1 | Summary | Enfatiza Vue 3 + Flutter | Reescribir enfatizando fundamentos JS/TS y velocidad de aprendizaje de nuevos frameworks | Para intentar pasar un primer filtro de keywords, sin fabricar experiencia React |
| 2 | Experiencia | Bullets en términos de Vue/Composition API | Reformular en vocabulario agnóstico de framework donde sea honesto (ej. "arquitectura de componentes reactivos") | Suaviza el mismatch sin inventar |
| 3 | Skills | Vue 3 listado primero | No aplicable — no hay React real que destacar | No inventar experiencia no existente |
**Top 5 cambios al CV:** no recomendado dado el score.
**Top 5 cambios a LinkedIn:** no recomendado dado el score.
## F) Plan de Entrevistas
STAR stories disponibles si la candidata decidiera aplicar de todos modos (por ejemplo, si busca activamente aprender React de forma remunerada):
| # | Requisito del JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | Разработка внутренних интерфейсов | Frontend de ЕКОМ desde cero | Necesidad de sistema interno de gestión de pedidos/logística | Construir el frontend completo | Vue 3 + Composition API + TS + Pinia + Vite, desde arquitectura hasta despliegue | Sistema en uso activo por logística, soporte y desarrollo (cv.md:33-38) |
| 2 | Клиентские интерфейсы | Diagnóstico y fix del bug de «Избранное» en «Здесь Аптека» | Usuarios se quejaban de que la sección no cargaba | Diagnosticar la causa raíz | Identificó carga de todos los productos en una sola query; implementó carga paginada | Quejas de usuarios cesaron (cv.md:23) |
| 3 | Внедрение новых технологий и практик | Introducción de Feature Branching en GitLab | Releases inestables, features "colgadas" | Implementar Git Flow y capacitar a un colega | Enseñó control de versiones a colega con 11 años de antigüedad | Equipo pasó a releases semanales estables (cv.md:46) |
| 4 | Разграничение доступа / internal tools | Diseño del modelo RBAC en ЕКОМ | Necesidad de separar accesos entre departamentos | Diseñar y explicar el modelo de roles al equipo de backend | Aplicó fundamentos de su formación en seguridad de la información | Modelo implementado y adoptado (cv.md:37) |
| 5 | Node.js (soporte/backend ligero) | Proyecto de hackathon TulaHack.Digital | App con filtrado de recetas por ingredientes | Construir un backend ligero | Express + Node.js + MongoDB | App funcional entregada en el hackathon (cv.md:63-64) |
| 6 | Continuous learning / postoyanное обучение | Transición Flutter → Vue 3 en «Здравсервис» | Empezó como desarrolladora Flutter tras un curso de reconversión | Asumir el frontend de ЕКОМ (Vue 3) sin experiencia previa en ese framework | Aprendió Composition API/Pinia/TS en el puesto y lo llevó a producción | Producto en uso activo ~1 año después (cv.md:17, 33) |
**Case study recomendado (si aplicara):** transición Flutter → Vue 3 en «Здравсервис» — es la evidencia más directa de que puede aprender un framework nuevo en producción, que es exactamente lo que este puesto exigiría con React.
**Preguntas red-flag y cómo responderlas:**
- *"Vemos que tu experiencia es en Vue, no React — ¿por qué deberíamos considerarte para este puesto Junior?"* → Honestidad directa + evidencia concreta: ya hizo esta transición de framework una vez (Flutter → Vue 3) en producción real, en semanas, sin experiencia previa.
- *"¿Por qué buscarías un puesto Junior teniendo ya experiencia de dueño de producto?"* → Respuesta honesta: el interés sería aprender React remunerado; sería razonable pedir aclaración sobre banda salarial y alcance real de responsabilidades antes de avanzar, ya que un desajuste de nivel/comp descartaría el puesto rápidamente.
## G) Posting Legitimacy
**Assessment: Proceed with Caution**
| Señal | Resultado |
|---|---|
| Especificidad de la descripción | Media — incluye dirección física exacta (Perm, ул. Куйбышева, 95Б), horario 5/2, beneficios (DMS con estomatología, T-Upgrade, compensación de comida/transporte), pero los requisitos técnicos son muy genéricos (1 año de experiencia, sin detalle de proyecto/equipo/producto específico) |
| Empresa | Т-Банк — banco/fintech grande y verificable, sin señales de estafa |
| Reposting / historial | `data/scan-history.tsv` muestra que esta misma URL ya fue escaneada el 2026-07-07 (fuente: telegram-api) — una sola aparición, no hay patrón de repost sospechoso |
| Freshness de la publicación | No verificado (batch mode) — Playwright no disponible en este contexto; no se pudo confirmar el estado exacto del botón "Responder" ni días desde publicación |
| Señales de mercado / despidos | No se encontraron señales de freeze o layoffs en la búsqueda de comp (Bloque D); la empresa aparece descrita como reclutadora activa en el mercado fintech ruso |
**Nota:** posting freshness unverified (batch mode). Se marca "Proceed with Caution" (en vez de "High Confidence") porque la descripción es notablemente más genérica que otras vacantes de Т-Банк evaluadas previamente (menos detalle de stack/equipo/proyecto) — no hay señal de fraude, pero sí menos información verificable que en el caso típico "High Confidence".
---
## Keywords extraídas
React, JavaScript, Node.js, UI-Kit, internal libraries, frontend, client interfaces, internal tools, Perm, hybrid, remote, 5/2 schedule, junior, T-Upgrade, banking, fintech, mentoring, continuous learning, DMS, meal compensation, transportation compensation, higher education