text/markdown · /proyectos.md
# 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.