
Resumen
Desarrollador de software con mentalidad orientada a producto y una sólida base en ingeniería de software. Mi enfoque combina la excelencia técnica con principios Lean: maximizar el valor entregado minimizando el desperdicio, iterando continuamente a partir del feedback real del usuario.
¿Quién soy?
Soy un profesional resolutivo, enfocado en el buen diseño de software y en la creación de productos robustos y mantenibles. Cuando surge un error en producción, mi prioridad, más allá de mitigarlo, es analizar la causa raíz para que no vuelva a ocurrir. A partir de ahí, propongo proactivamente mejoras en diseño, monitorización, alertas y estrategia de testing para fortalecer la resiliencia del sistema.
Disfruto capacitando a otros y compartiendo conocimiento para impulsar a los equipos en los que me integro. Mantengo una comunicación fluida con usuarios finales y stakeholders, generando un impacto transversal tanto en el producto como en la cultura de ingeniería.
Me apasiona la evolución constante; dedico tiempo a explorar nuevas formas de desarrollo, leer libros técnicos y participar activamente en eventos de la comunidad.
Experiencia Profesional
Backend Software Engineer
Diseño y Negocio: Traducción de necesidades de negocio complejas en soluciones de software de alto impacto, manteniendo una alineación constante entre objetivos técnicos y de producto.
Arquitectura y Testing: Aplicación de Arquitectura Hexagonal y estrategias de testing en múltiples capas (unitarias, integración, sociales, contrato y E2E) para garantizar sistemas robustos y evolutivos.
DevOps: Automatización del ciclo de vida del software mediante pipelines de integración y despliegue.
CI/CD: Uso de Feature Flags y Parallel Change para desacoplar el despliegue técnico de la liberación de funcionalidades (release), pudiendo integrarnos continuamente en la rama principal, así como desplegar varias veces a la semana, evitando conflictos y acelerando la cadencia de entrega.
Observabilidad: Monitorización en producción (stack LGTM) para anticipar incidentes, reducir el tiempo de resolución (MTTR) y analizar el comportamiento real del usuario.
Mentoring Técnico: Apoyo al crecimiento del equipo mediante la facilitación de iniciativas de ingeniería, formación interna y aceleración en el onboarding de perfiles júnior.
Metodologías y Filosofía de Trabajo
Test-Driven Development (TDD): Practicante del enfoque Outside-In TDD para lograr un diseño evolutivo y una sólida cobertura de tests, utilizando para ello herramientas de IA para optimizar el flujo de trabajo.
Domain-Driven Design (DDD): Filosofía de diseño enfocada en modelar dominios complejos, evitando la fuga o duplicación de conocimiento en la aplicación.
Event-Driven Architecture: Diseño de sistemas basados en eventos para la comunicación asíncrona entre microservicios.
Extreme Programming (XP): Desarrollo de software guiado por sus valores fundamentales: comunicación, simplicidad, retroalimentación, coraje y respeto.
Lean Software Development: Comprensión del software desde las necesidades reales del usuario, avanzando de forma incremental e iterativa para eliminar el desperdicio generado por fallos de comunicación.
Stack Tecnológico
Backend: C# (.NET), Java (Spring Boot), NestJS (TypeScript).
Cloud: Azure, Kubernetes, Grafana, ArgoCD.
IA: GitHub Copilot, OpenCode.
