Skip to content
This page is not translated yet. You are reading the Spanish original. The mock interviews, the landing page and the guides are available in English; the question bank and the courses are being translated progressively — contributions welcome.

Entrevistas Senior — TypeScript / Node.js / Microservicios

This content is not available in your language yet.

Guía de preparación para entrevistas técnicas de nivel Senior. Cada pregunta incluye una respuesta resumen (lo que dirías en 30–60 segundos) y una respuesta detallada con código TypeScript realista, trade-offs, errores comunes y qué espera oír el entrevistador. Los [CASO] son análisis de problemas de producción con escenario, diagnóstico paso a paso, herramientas, solución y prevención.

🎓 ¿Te faltan bases para responder esto? El curso TypeScript / Node senior enseña exactamente lo necesario, con laboratorios y autoevaluación. Ver también: índice completo · plan de estudio · glosario · inicio

Archivo Contenido Preguntas
01-typescript-avanzado.md Sistema de tipos avanzado, tsconfig, monorepos, validación runtime 16
02-node-y-microservicios.md Event loop, NestJS, mensajería, patrones de resiliencia, observabilidad 16
03-casos-y-problemas.md Casos reales de producción (todos [CASO]) 16

Total: 48 preguntas.


  1. ¿Qué son los conditional types y cómo funciona infer?
  2. Distributividad de conditional types: ¿por qué Exclude funciona y cuándo hay que desactivarla?
  3. Mapped types: key remapping con as y modificadores +/-
  4. Template literal types: rutas y eventos tipados
  5. Varianza: covarianza, contravarianza, strictFunctionTypes y bivarianza de métodos
  6. Type narrowing: type guards con is, discriminated unions, asserts y exhaustividad con never
  7. Branded types: tipado nominal sobre un sistema estructural
  8. satisfies vs anotación de tipo vs as: ¿cuándo usar cada uno?
  9. Generics avanzados: constraints, defaults, inferencia parcial y sobre-genericidad
  10. Structural typing: excess property checks y compatibilidad accidental
  11. unknown vs any vs never: fronteras de API y manejo de errores
  12. Declaration merging y module augmentation: extender Express Request y tipos globales
  13. tsconfig estricto para servicios Node modernos: qué flags activar y por qué
  14. Monorepos TypeScript: project references, builds incrementales y Turborepo/Nx
  15. Decoradores: legacy (experimentalDecorators) vs estándar TC39 — y por qué NestJS sigue en legacy
  16. Validación runtime con Zod: los tipos se borran, las fronteras no se defienden solas
  1. Explica las fases del event loop de Node.js y qué se ejecuta en cada una
  2. [CASO] Un servicio deja de responder a health checks aunque el proceso sigue vivo: starvation de microtasks
  3. Worker threads vs cluster vs child_process: ¿cuándo usarías cada uno?
  4. Streams y backpressure: ¿cómo procesarías un archivo de 10 GB de pedidos sin tumbar el servicio?
  5. Inyección de dependencias en NestJS: providers, scopes y su coste
  6. Guards, interceptors, pipes y exception filters en NestJS: orden de ejecución y casos de uso
  7. REST vs gRPC entre microservicios con TypeScript: ¿cuándo eliges cada uno?
  8. Kafka vs RabbitMQ vs BullMQ: ¿cómo eliges la tecnología de mensajería?
  9. Patrón Saga: coreografía vs orquestación en un flujo de pedidos y pagos
  10. Patrón Outbox e idempotencia: ¿cómo consigues “exactly-once efectivo” entre base de datos y broker?
  11. [CASO] Al desplegar en Kubernetes se pierden peticiones y quedan jobs a medias: diseña el graceful shutdown
  12. Manejo de errores async en Node: unhandled rejections, captureRejections y por qué no “tragar” errores
  13. Observabilidad con OpenTelemetry en Node: trazas distribuidas, propagación de contexto y correlación
  14. Estrategia de testing en microservicios: unit, integración con Testcontainers y contract testing
  15. [CASO] La latencia p99 de tu API se dispara con ciertos payloads: ¿cómo detectas y evitas el bloqueo del event loop?
  16. Manejo de JSON grande en Node: streaming parsers, NDJSON y alternativas binarias
  1. Memory leak: el heap crece hasta OOM
  2. Event loop bloqueado: p99 disparado por código CPU-bound
  3. OOM procesando archivos grandes: readFile vs streams
  4. Unhandled promise rejection tumbando pods en cascada
  5. Fuga de conexiones a Postgres: pool agotado
  6. Cola con lag creciente: consumidores que no dan abasto
  7. Race condition: doble descuento de stock en operaciones concurrentes
  8. Hot reload de configuración sin reiniciar el servicio
  9. Migración JS→TS incremental en un servicio grande
  10. Timeout en cascada entre servicios: A→B→C
  11. DNS y keep-alive con axios/undici en alta concurrencia
  12. Degradación por GC: pausas largas y sawtooth agresivo
  13. Pérdida de eventos: mensajes que “desaparecen”
  14. Duplicación de jobs/mensajes: el mismo evento procesado dos veces
  15. Hot path degradado: CPU throttling en Kubernetes distorsionando latencias
  16. Graceful shutdown roto: 502s en cada deploy

Herramientas de diagnóstico recurrentes en los casos: clinic.js (doctor/flame/heapprofiler), heap snapshots en Chrome DevTools (node --inspect), flamegraphs (0x), perf_hooks.monitorEventLoopDelay, process.memoryUsage(), --trace-gc, y métricas/trazas con OpenTelemetry y Prometheus.