Junior → Arquitecto → Más allá
Hoja de Ruta del Ingeniero Backend
Un camino de aprendizaje graduado por nivel a través de todo lo de esta guía. Cada etapa lista lo que ya puedes hacer y qué aprender a continuación — y cada tarjeta está etiquetada con su nivel para que puedas practicar exactamente donde estás.
- 1
Junior
Construye y publica endpoints con guía.
Construyes endpoints y entregas features con orientación. El objetivo es fluidez en los fundamentos — módulos, controladores, proveedores, DTOs y acceso básico a datos — para que puedas entregar un módulo CRUD funcional de extremo a extremo.
Ya puedes
- ✓Generar un módulo con el CLI y conectar un controlador + servicio.
- ✓Definir rutas y leer parámetros/query/body con DTOs.
- ✓Inyectar un servicio vía el constructor y entender que es un singleton.
- ✓Validar entrada con class-validator + un ValidationPipe global.
- ✓Leer y escribir datos a través de un repositorio (TypeORM/Prisma/Mongoose).
Mejora con
- →Inyección de dependencias en profundidad: tokens, proveedores personalizados, exports/imports.
- →El ciclo de vida de requests — guards, interceptores, pipes, filtros y su orden.
- →El event loop de Node y las trampas de async/await.
- →Escribir tus primeras pruebas unitarias + e2e con @nestjs/testing y supertest.
Practica las flashcards filtradas a Junior, más las categorías Core y Data & ORM. Lee los temas de estudio 01–04, 08 y 14. - 2
Mid
Domina módulos de principio a fin: datos, validación, tests.
Eres dueño de módulos de extremo a extremo — datos, validación, tests — con poca orientación. El objetivo es profundidad en el toolkit diario de NestJS y el inicio de la conciencia de rendimiento.
Ya puedes
- ✓Usar el pipeline de requests completo: guards, interceptores, pipes, filtros de excepción.
- ✓Modelar configuración con @nestjs/config y validar entorno al arrancar.
- ✓Ejecutar transacciones y evitar la trampa de synchronize en producción.
- ✓Escribir pruebas unitarias con proveedores sobrescritos y e2e con supertest.
- ✓Razonar sobre el event loop y evitar bloquearlo.
Mejora con
- →Alcances de inyección y el costo de REQUEST scope; módulos dinámicos (forRoot/forFeature).
- →Autenticación (JWT/Passport), RBAC y rate limiting.
- →Caché, colas (BullMQ), programación y eventos — y sus trampas multi-réplica.
- →Streams y backpressure; worker_threads vs cluster.
- 3
Senior
Profundidad en DI, el ciclo de vida de la petición, rendimiento y seguridad.
Traes profundidad en DI, rendimiento y madurez en seguridad, y elevas al equipo a tu alrededor. El objetivo es ser la persona que perfila en lugar de adivinar y razona sobre el sistema, no solo la sintaxis.
Ya puedes
- ✓Explicar los alcances de DI, módulos dinámicos y el ciclo de vida de requests de memoria.
- ✓Diseñar auth (JWT + refresh, RBAC/ABAC) y endurecer la API.
- ✓Perfilar con clinic.js/flame graphs/APM y razonar en p95/p99 — corregir bloqueo del event loop, consultas N+1 y fugas de memoria con evidencia, no adivinanzas.
- ✓Aislar fallos con circuit breakers, bulkheads y timeouts (no bare try/catch) para que una dependencia lenta no arrastre todo el proceso.
- ✓Enmarcar decisiones como trade-offs: nombra la opción que rechazaste y por qué, luego vincula la elección a un resultado medible — mid dice qué hizo, tú dices por qué y qué movió.
- ✓Hacer que caché/rate-limiting/colas sean correctos entre réplicas con Redis.
- ✓Ser dueño de observabilidad: logs estructurados, traces, health checks, apagado graceful.
Mejora con
- →Diseño de sistemas a escala: layering/hexagonal, CQRS, patrones de resiliencia.
- →Microservicios: transportes, message vs event, sagas + outbox.
- →GraphQL a escala (DataLoader, federation) y tiempo real (WebSockets + Redis).
- →Despliegue: Docker multi-stage, CI/CD, SLOs.
- →La meta-habilidad senior — comunicar trade-offs en vivo: "La opción A optimiza X al costo de Y; dada Z elegiría…, y revisaría en [umbral]," siempre anclado a p95/p99, tasa de error o costo por request.
Filtra flashcards a Senior y las categorías Node.js Core, Performance, Security, Auth y Deploy & Ops. Lee los temas de estudio 26–34 y la guía completa de Arquitectura. Luego ensaya el por qué: para cada corrección, practica diciendo el framework, la alternativa que rechazaste y el número p95/p99 o tasa de error que movió — ese enmarque es lo que se lee como senior, no la corrección misma. - 4
Arquitecto
Diseño de sistemas, microservicios, decisiones de plataforma.
Diseñas sistemas backend de extremo a extremo y tomas decisiones de plataforma que mueven a un equipo completo. El objetivo es la toma de decisiones antes del código — para la peor consulta, la peor red y el peor pico de tráfico.
Ya puedes
- ✓Diseñar un servicio de extremo a extremo y justificar la arquitectura, datos y estrategia de consistencia.
- ✓Elegir entre monolito modular y microservicios y trazar límites limpios.
- ✓Aplicar sagas, el outbox, idempotencia y patrones de resiliencia (circuit breakers, bulkheads, timeouts) para aislamiento de fallos.
- ✓Diseñar multi-tenancy y prevenir filtración entre tenants.
- ✓Implementar CI/CD, observabilidad y SLOs entre servicios.
- ✓Recorrer un sistema que construiste de extremo a extremo — decisiones, alternativas rechazadas, modos de fallo y el resultado medido — y conducir un diseño de 45 minutos que proactivamente plantea idempotencia, backpressure y semánticas de entrega.
Mejora con
- →Estrategia de plataforma a nivel de organización: librerías compartidas, convenciones, caminos dorados.
- →Presupuestos de costo/rendimiento a escala y evaluación de tecnologías emergentes.
Filtra flashcards a Arquitecto y las categorías Architecture y Microservices. Trabaja la guía de Arquitectura + Inmersiones, los prompts de diseño de sistemas y los temas de estudio 28, 36. - 5
Beyond
Frontera: event-driven a escala, edge y Nest serverless.
La frontera — donde empujas lo que un backend Node/NestJS puede hacer. El objetivo es traer capacidad genuinamente nueva y开创 patrones que el resto del equipo adoptará.
Ya puedes
- ✓Ejecutar NestJS en serverless/edge con arranque cacheado y connection pooling.
- ✓Construir sistemas basados en event sourcing y CQRS donde genuinamente encajen.
- ✓Stremear respuestas LLM/AI (SSE/WebSocket) con backpressure y cancelación.
- ✓Usar AsyncLocalStorage para contexto con rendimiento de singleton scope.
Mejora con
- →Adoptar NestJS 12 (ESM, Standard Schema/Zod, Vitest) y contribuir patrones de vuelta al equipo.
Filtra flashcards a Beyond y lee los temas de estudio 29, 30. Prueba los prompts de diseño basados en eventos e idempotencia.