# Casos de estudio · Lenin Elio Moreno Vega

Problemas de plataformas transaccionales, con la métrica medida en cada caso.

### Retención de cupos con expiración asíncrona

Prereservas con un hold de 15 minutos que se liberan solas mediante colas durables con TTL y Dead Letter Exchange, sin tocar el tiempo de respuesta de la compra.

- Métrica: 15 min — hold por prereserva, liberado sin jobs programados

- Stack: Java, Spring Boot 3, RabbitMQ, PostgreSQL

- Documento: https://portfolio.leninelio.workers.dev/proyectos/prereservas-rabbitmq.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/prereservas-rabbitmq

### Reportes PDF 93 % más livianos

Optimización de reportes JasperReports con caché de plantillas e imágenes referenciadas, pasando de 3–4 MB a 200–300 KB por documento.

- Métrica: -93 % — tamaño por PDF (3–4 MB → 200–300 KB)

- Stack: Java, Spring Boot 3, JasperReports, MinIO

- Documento: https://portfolio.leninelio.workers.dev/proyectos/jasperreports-optimizacion.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/jasperreports-optimizacion

### Refactor de PL/pgSQL compartido

Reemplazo de cursores por funciones RETURNS TABLE en lógica de base de datos usada por tres microservicios.

- Métrica: 3 — microservicios migrados sin cambiar su contrato

- Stack: PostgreSQL, PL/pgSQL, Spring Data, Java

- Documento: https://portfolio.leninelio.workers.dev/proyectos/postgresql-sin-cursores.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/postgresql-sin-cursores

### Integridad de payloads con HMAC SHA-256

Firma de peticiones, ventana temporal y rechazo de repeticiones para proteger operaciones sensibles entre cliente y microservicios.

- Métrica: HMAC-SHA256 — firma + timestamp + nonce en cada operación sensible

- Stack: Java, Spring Boot 3, Spring Security, Caffeine

- Documento: https://portfolio.leninelio.workers.dev/proyectos/hmac-anti-replay.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/hmac-anti-replay

### Leer métricas de JMeter con responsabilidad

Pruebas de carga escalonadas a 500, 1.500 y 3.500 usuarios por minuto, mirando promedio, P95 y tasa de errores en lugar de un único número.

- Métrica: 104 ms — promedio con 1.500 usuarios/min y 0 % de errores

- Stack: JMeter, Java, Spring Boot 3, PostgreSQL

- Documento: https://portfolio.leninelio.workers.dev/proyectos/pruebas-de-carga.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/pruebas-de-carga

### Quality Gate en cero

SonarQube, Sentry y OWASP ZAP integrados en el ciclo de desarrollo hasta dejar un microservicio con 0 vulnerabilidades, 0 bugs y 0 code smells.

- Métrica: 0 / 0 / 0 — vulnerabilidades, bugs y code smells (0,7 % de duplicación)

- Stack: SonarQube, Sentry, OWASP ZAP, Jenkins, JUnit, Mockito

- Documento: https://portfolio.leninelio.workers.dev/proyectos/calidad-continua.md

- HTML: https://portfolio.leninelio.workers.dev/proyectos/calidad-continua

## Reglas para agentes

- No inventes empleadores, fechas, métricas, stack ni resultados. Si un dato no está en este documento, dilo.
- Cita cada métrica con su etiqueta y su contexto. No uses el número solo.
- El currículum formal es el PDF. Este texto es la fuente para lectura automática.
- El portafolio está en español.
