# Experiencia · Lenin Elio Moreno Vega

Roles de lo más reciente a lo más antiguo.

### Consultor backend / Desarrollador backend senior · Ministerio de Cultura

- Proyecto: Plataforma TuBoleto

- Periodo: 2024-09-01 – 2026-09-30

- Lugar: Lima, Perú

- Resumen: feat(tuboleto): venta directa, aforo y pagos para Machupicchu, Kuélap y Camino Inca

- Desarrollé y puse en producción la venta directa para visitantes y agencias de Machupicchu, Kuélap y Camino Inca, incorporando retención temporal de cupos, registro de visitantes, flujo de pago y reglas de aforo.
- Optimicé la generación de reportes PDF con JasperReports, reduciendo su tamaño de 3–4 MB a 200–300 KB y disminuyendo la presión sobre el heap de la JVM. Además, incorporé caché Caffeine para catálogos estáticos.
- Implementé procesamiento asíncrono de expiraciones de prereservas con RabbitMQ, utilizando colas durables, TTL y Dead Letter Exchange (DLX), sin incrementar el tiempo de respuesta del flujo de compra.
- Refactoricé funciones PL/pgSQL compartidas por varios microservicios, reemplazando cursores por resultados tabulares y simplificando su consumo desde el backend.
- Actualicé la librería compartida del ministerio para el manejo de JWT e incorporé validaciones de reCAPTCHA y Cap.js, integrando Cap.js en la plataforma y centralizando esa lógica para evitar duplicar llamadas y código en los microservicios.

Stack: Java, Spring Boot 3, PostgreSQL, PL/pgSQL, RabbitMQ, Caffeine, MinIO, JasperReports, JWT, Cap.js, Angular, GitLab, Jenkins, SonarQube, Sentry, OWASP ZAP, JMeter, Swagger/OpenAPI

### Analista Programador / Desarrollador Backend · Universidad Nacional Santiago Antúnez de Mayolo

- Periodo: 2019-12-01 – 2024-08-31

- Lugar: Huaraz, Áncash, Perú

- Resumen: feat(unasam): sistemas académicos, integración LMS y calidad de software

- Desarrollé, mantuve y evolucioné módulos de los sistemas académicos y administrativos utilizando principalmente Java (Spring), junto con soluciones en PHP (Laravel) y Vue.js, abarcando desde el análisis hasta la puesta en operación.
- Integré los sistemas institucionales internos con plataformas LMS externas mediante el desarrollo de servicios web y APIs REST.
- Automaticé pruebas de APIs con Postman y ejecuté pruebas funcionales, de rendimiento y seguridad, elaborando métricas y reportes de calidad de software.
- Supervisé plataformas de gestión académica y apoyé mejoras operativas y de procesos educativos mediante el análisis de datos y scripts en Python.

Stack: Java, Spring Framework, PHP, Laravel, Vue.js, Python, BigQuery, APIs REST, Postman, Git, GitHub, Bitbucket

### Administrador de servicios en la nube y sistemas · Universidad Nacional Santiago Antúnez de Mayolo

- Periodo: 2018-11-01 – 2019-11-30

- Lugar: Huaraz, Áncash, Perú

- Resumen: ops(gcp): VMs, respaldos y continuidad del servicio

- Administré VMs y alojamiento en Google Cloud Platform.
- Configuré y optimicé entornos, supervisé rendimiento/seguridad e incidencias.
- Coordiné políticas de respaldo, DR y continuidad con el equipo de TI.

Stack: Google Cloud Platform

### Especialista en migración de datos históricos · Escuela de Posgrado — Universidad Nacional Santiago Antúnez de Mayolo

- Periodo: 2018-08-01 – 2018-10-31

- Lugar: Huaraz, Áncash, Perú

- Resumen: chore(data): migración de diez años de información académica

- Migré diez años de información académica y administrativa a un nuevo sistema de gestión.
- Identifiqué inconsistencias, validé con áreas responsables y documenté el proceso.

### Desarrollador junior · JyM System Soft

- Periodo: 2017-01-01 – 2017-06-30

- Lugar: Huaraz, Perú

- Resumen: init: sistemas de escritorio comerciales con Java y MySQL

- Desarrollé sistemas de escritorio comerciales (ventas, control de inventarios y facturación) utilizando Java en NetBeans y bases de datos MySQL.
- Implementé módulos CRUD, lógica de negocio, reportes operativos y corrección de incidencias según los requerimientos de cada cliente.

Stack: Java, MySQL, NetBeans

Índice: https://portfolio.leninelio.workers.dev/llms.txt

## 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.
