init
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

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

+148
View File
@@ -0,0 +1,148 @@
# 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