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

149 lines
13 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.
# Evaluación: Т-Банк — Frontend Developer (React)
**Fecha:** 2026-07-08
**Arquetipo:** Frontend Developer (React) — off-archetype (primary del candidato es Vue.js)
**Score:** 1.2/5
**Legitimacy:** High Confidence
**URL:** https://hh.ru/vacancy/133056126?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated — run /career-ops pdf t-bank to create on demand
**Batch ID:** 4
---
## Machine Summary
```yaml
company: "Т-Банк"
role: "Frontend Developer (React)"
score: 1.2
legitimacy_tier: "High Confidence"
archetype: "Frontend Developer (React) — off-archetype"
final_decision: "Skip"
hard_stops:
- "Офис/гибрид в Казани — требует переезда, кандидат переезд не рассматривает (жёсткая политика локации)"
- "Требуемый опыт 3-6 лет (Middle-Senior) — у кандидата ~1.5-2 года коммерческого опыта"
- "Основной стек — React, у кандидата нет коммерческого опыта на React (только Vue 3)"
soft_gaps:
- "Node.js указан как plus — у кандидата только ознакомительный уровень (учебный проект + хакатон)"
top_strengths:
- "Крепкие JS/TypeScript основы и опыт unit/e2e тестирования (Vitest, Playwright) переносимы на любой фреймворк"
risk_level: "Low"
confidence: "High"
next_action: "Не применять; при появлении Vue-вакансии в Туле/удалённо у Т-Банка — переоценить"
```
## A) Resumen del Rol
| Campo | Valor |
|---|---|
| Arquetipo detectado | Frontend Developer (React) — no coincide con ninguno de los 3 arquetipos objetivo del candidato (Vue.js, Flutter, Fullstack Vue+Node) |
| Domain | Fintech / Banking (Т-Банк, ex-Тинькофф) |
| Function | Frontend Developer |
| Seniority | Middle-Senior (3-6 años de experiencia requeridos) |
| Remote | No — гибрид/офис en Kazan (ул. Спартаковская, 6) |
| Team size | No especificado en el JD |
| TL;DR | Vacante de Frontend en React para el hub de Kazan de Т-Банк. Choca con tres restricciones duras del candidato: stack (React, no Vue), ubicación (requiere reubicación desde Тула) y seniority (3-6 años vs. ~1.5-2 años reales). |
**Vibe команды (сигнал из JD, не подтверждённый факт):** JD упоминает платформу обучения T-Upgrade с курсами и менторством — это позитивный сигнал в пользу инвестиций в рост сотрудников. По формулировкам JD сложно судить об уровне автономии/bureaucратии — недостаточно данных в тексте вакансии, стоит уточнять на собеседовании. (Внешние отзывы о бюрократии в компании — см. Блок D — не относятся напрямую к этой команде.)
## B) Match con CV
| Requisito JD | Match en CV | Estado |
|---|---|---|
| Strong JavaScript | cv.md:83 — «Языки программирования: JavaScript, TypeScript...» | ✅ Match |
| React experience | Sin referencia en cv.md — стек кандидата: Vue 3, Composition API, Pinia (cv.md:85) | ❌ Gap crítico |
| TypeScript | cv.md:83, cv.md:85 — TypeScript в связке с Composition API | ✅ Match |
| Modern web dev stack | cv.md:85, cv.md:89 — Vite, ESLint, Prettier, Tailwind, shadcn | ⚠️ Match parcial (tooling sí, framework no) |
| CI/CD (GitLab) | cv.md:99 — «Git, GitLab, CI/CD (рабочий опыт)»; cv.md:46 — внедрила Feature Branching в GitLab | ✅ Match |
| Unit testing | cv.md:91 — Vitest (unit-тесты Vue-компонентов), Playwright E2E на РМК | ✅ Match (metodología transferible, sin React Testing Library) |
| Node.js | cv.md:95 — «Backend (ознакомительный уровень): Node.js, Express, MongoDB» (проект ТулГУ + хакатон) | ⚠️ Match débil — nivel introductorio |
| Distributed teams | cv.md:105 — кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами) | ✅ Match |
| 3-6 años de experiencia | Experiencia comercial desde nov. 2024 (~8 meses en rol actual) + proyecto freelance TulGU 2022 (~10 meses) + hackathon | ❌ Gap crítico |
### Gaps y estrategia de mitigación
1. **React (hard blocker)**
- ¿Bloqueador duro o nice-to-have? Duro — es el requisito técnico central del puesto, no un plus.
- ¿Experiencia adyacente demostrable? Sí parcialmente: Composition API (Vue) y hooks (React) comparten filosofía reactiva declarativa, y el candidato tiene fundamentos sólidos de JS/TS que 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: no hay mitigación realista para un puesto que exige React como stack principal con 3-6 años de experiencia — el candidato tendría que aprender React en el puesto, lo cual no es lo que la vacante busca a ese nivel de seniority.
2. **Seniority — 3-6 años requeridos (hard blocker)**
- ¿Duro o nice-to-have? Duro — está explícito en el JD como rango de experiencia.
- ¿Experiencia adyacente? El candidato ha tenido responsabilidad de alto impacto en poco tiempo (frontend de ЕКОМ desde cero, diseño de RBAC, mentoría a colega con 11 años de antigüedad) — argumento de "profundidad sobre años", pero no cierra una brecha de 1.5-4.5 años frente a un filtro mecánico de ATS/RRHH.
- Plan de mitigación: ninguno realista a corto plazo.
3. **Ubicación — Kazan, requiere reubicación (hard blocker de política, no de JD)**
- Según `modes/_profile.md`: *"Hybrid/office roles requiring relocation outside Тула... score 1.0 — this is a hard constraint, not a soft preference."*
- El candidato explícitamente no considera reubicación ni viajes de negocio (cv.md:119-120).
- Plan de mitigación: ninguno — es una restricción no negociable de política, no un gap de habilidades.
## C) Nivel y Estrategia
- **Nivel detectado en el JD:** Middle-Senior (3-6 años).
- **Nivel natural del candidato:** Junior alto / Middle en ascenso — primer rol comercial full-time desde noviembre 2024 (~8 meses), con antecedente de desarrollo freelance/académico (TulGU, 2022, ~10 meses) y un hackathon.
- **Plan "vender senior sin mentir":** Posible pero insuficiente para este caso — se podría enfatizar ownership real (diseñó el frontend de ЕКОМ desde cero, diseñó el modelo RBAC y lo explicó al equipo de backend, entrenó a un colega con 11 años de antigüedad en control de versiones) como evidencia de juicio de nivel senior pese a la antigüedad corta. Sin embargo, la brecha de framework (React vs. Vue) hace que este argumento no sea suficiente por sí solo — un filtro de React + 3-6 años suele ser mecánico en bancos grandes como Т-Банк.
- **Plan "si me downlevelan":** No aplica — este JD no ofrece una banda de seniority más baja; el mismatch es hacia arriba (JD pide más experiencia de la que el candidato tiene), no hacia abajo.
## D) Comp y Demanda
| Fuente | Dato |
|---|---|
| JD | Salario no especificado — "se discute en la entrevista" |
| WebSearch (dreamjob.ru, getgrade.ru, habr career) | Salarios de frontend en Т-Банк descritos como competitivos, a nivel de mercado o superior al incluir bonos anuales; la empresa es descrita como uno de los reclutadores más agresivos del mercado fintech ruso en 2026 |
| Reseñas de empleados | Aspectos positivos: proceso de promoción transparente, gestores receptivos, compensación de comidas/oficina. Aspectos negativos: burocracia, quejas de indexación salarial (mayormente de roles no-dev) |
**Score de comp: 3/5** — probablemente a nivel de mercado o ligeramente por encima, pero sin cifra confirmada en el JD; Kazan tiene costo de vida menor que Moscú, lo cual podría implicar banda salarial algo menor que en la sede central.
## E) Plan de Personalización
Dado que este rol tiene tres bloqueadores duros (stack, seniority, ubicación), **no se recomienda invertir en personalización de CV/LinkedIn para esta vacante específica.** Se documentan los cambios que se harían solo por completitud del proceso:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---|---|---|---|
| 1 | Summary | Enfatiza Vue 3 + Flutter | Reescribir enfatizando JS/TS fundamentals y adaptabilidad de framework | Para intentar pasar el primer filtro de keywords |
| 2 | Skills | Vue 3 listado primero | No aplicable — no hay React real que destacar | No inventar experiencia no existente |
| 3 | Experiencia | Bullets en términos de Vue/Composition API | Reformular en vocabulario JS agnóstico donde sea honesto (ej. "component-based reactive UI") | Suaviza el mismatch sin fabricar |
**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 el candidato decidiera aplicar de todos modos (por ejemplo, si está dispuesta a reconsiderar reubicación o si aparece un rol remoto React en el futuro):
| # | Requisito del JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | Modern web dev stack / component architecture | Frontend de ЕКОМ desde cero | Necesidad de sistema interno de gestión de pedidos/logística | Construir 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 | Distributed teams / cross-functional work | Diseño del modelo RBAC | 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) |
| 3 | CI/CD (GitLab) | Introducción de Feature Branching | Releases inestables, features "colgadas" | Implementar Git Flow y capacitar a un colega senior | Enseñó control de versiones a colega con 11 años de antigüedad | Equipo pasó a releases semanales estables (cv.md:46) |
| 4 | Unit testing | Implementación de Playwright E2E | Falta de cobertura de pruebas en proyecto legacy (РМК) | Introducir tests E2E | Playwright, en fase de adopción activa | Proceso de QA más confiable (cv.md:45) |
| 5 | Debugging complejo / calidad de código | Bug de closures en РМК | Teclado dejaba de responder tras uso prolongado | Diagnosticar variable reactiva atrapada en clase global | Identificó la causa raíz y corrigió el binding | Bug resuelto, ~20 bugs corregidos en el mismo proyecto (cv.md:42) |
| 6 | Node.js (nice-to-have) | Proyecto de hackathon TulaHack.Digital | App con filtrado de recetas por ingredientes | Construir backend ligero | Express + Node.js + MongoDB | App funcional entregada en el hackathon (cv.md:63-64) |
**Case study recomendado (si aplicara):** ЕКОМ — diseño de RBAC, por ser el diferenciador único frente a otros candidatos frontend.
**Preguntas red-flag y cómo responderlas:**
- *"Vemos que tu experiencia es en Vue, no React — ¿por qué deberíamos considerarte?"* → Honestidad directa: framework distinto, pero fundamentos de JS/TS/testing/CI transferibles; no minimizar la brecha.
- *"¿Estarías dispuesta a mudarte a Kazan?"* → Respuesta honesta según política del candidato: no reubicación, solo remoto o híbrido en Tula — esto probablemente termina el proceso aquí, y está bien que así sea.
## G) Posting Legitimacy
**Assessment: High Confidence**
| Señal | Resultado |
|---|---|
| Especificidad de la descripción | Alta — dirección física exacta, horario 5/2, beneficios detallados (T-Upgrade, seguro dental, compensación deportiva/comida), rango de experiencia explícito. No es boilerplate genérico. |
| Empresa | Т-Банк (ex-Тинькофф) — banco/fintech grande y verificable, no hay 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). Además, Т-Банк tiene múltiples vacantes de Frontend activas simultáneamente (React y Angular en Moscú, más esta en Kazan) escaneadas el 2026-07-06 — consistente con contratación activa a gran escala, no con un posting fantasma o abandonado. |
| 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) |
**Nota:** posting freshness unverified (batch mode) — el resto de señales (especificidad, empresa verificable, contratación activa multi-rol) son consistentes con una vacante real y activa.
---
## Keywords extraídas
React, JavaScript, TypeScript, CI/CD, GitLab, Node.js, unit testing, distributed teams, client-facing interfaces, internal tools, modern web stack, Kazan, hybrid, 5/2 schedule, T-Upgrade, banking, fintech, high-load interfaces, code review, mentoring, scalable products