Case Studies
Decisiones de ingeniería detrás de UFT, explicadas como las explicaría en una revisión de diseño: el problema, qué consideré, qué elegí, y por qué.
Diseñando el scorekeeping en tiempo real
Mantener a cada anotador, espectador y vista de estadísticas consistente mientras un partido está en vivo — con las reglas propias de Ultimate impuestas en tiempo real.
Tiempo real
Concurrencia
NestJS
Socket.io
Optimizando posiciones y generación de brackets
Hacer configurables los formatos de torneo en vez de codificarlos fijos — y proteger esa lógica con tests antes de refactorizar alrededor de ella.
Automatización de torneos
Testing
Modelado de datos
Implementación de RBAC
13 portales por rol, roles que se desalinearon entre dos seeders, y qué encontró una revisión de seguridad real.
Seguridad
RBAC
NestJS
Arquitectura orientada a eventos con NATS
Desacoplar el feed social de la operación de torneos en vivo — y ser honesto sobre qué está realmente conectado versus solo declarado.
NATS JetStream
Arquitectura orientada a eventos
Backend
Escalando espectadores en tiempo real
Medir honestamente la infraestructura de tiempo real de UFT — qué mostraron realmente las pruebas de carga, y qué encontró el análisis de tiempos de despliegue.
Escalabilidad
Pruebas de carga
Infraestructura