Ingeniero de Software Senior con experiencia construyendo sistemas backend, plataformas internas de desarrollo e infraestructura de producción. Especializado en Kubernetes, GitOps y desarrollo backend en el lenguaje que cada proyecto necesite: TypeScript/Node.js, Kotlin, Ruby, Java. Donde más destaco es en programación funcional, especialmente Haskell. Tengo experiencia en despligue de aplicaciones y operación de sistemas escalables así como dictado de capacitaciones.
Áreas principales
- Plataforma y confiabilidad: Kubernetes, GitOps, ArgoCD, Helm, Terraform, Docker, AWS y GCP.
- Ingeniería backend: TypeScript/Node.js, Elixir, Haskell, Ruby on Rails, APIs y sistemas distribuidos.
- Liderazgo técnico: plataformas de desarrollo, migraciones a producción, mentoría y acompañamiento de equipos.
Experiencia profesional
10Pines
Además de desempeñarme como desarrollador de software colabore en distintas areas internas de la empresa, entre ellas DevOps y el programa de mentorías. Uno de los proyecto que llevé a cabo fue el desarrollo de una developer platform para estandarizar los despliegues de diferentes aplicaciones, disminuir costos de infraestructura y reducir la dependencia del servicio externo Heroku. Por otra parte, me desempeñe como líder en el equipo de mentores, cuyo objetivo era capacitar a nuevos desarrolladores sin experiencia laboral previa. Parte de las funciones que cumplía en este rol incluían dar clases, hacer pair programming, dar feedback, fomentar el pensamiento crítico y capacitar a nuevos mentores.
Proyectos:
- Richeta: Dicté una capacitación semanal de tres meses sobre Elixir, Phoenix y LiveView para dos desarrolladores que se incorporaban a un proyecto nuevo.
- Ueno: Diseñé un motor de workflows modular en Kotlin para un banco paraguayo, que reemplazó su sistema de credit scoring anterior y terminó siendo adoptado por varios equipos.
- Hoopla: Gestioné la infraestructura de más de 25 microservicios y lideré una migración de un año de EC2 a Kubernetes, mejorando la elasticidad y reduciendo los costos de infraestructura en un 50%.
- Mumuki: Implementé un intérprete de JavaScript en Haskell que permitió ejecutar código simple de forma local para un analizador estático.
- Telecom: Co-lideré un equipo de 16 desarrolladores que migró un BFF de Java sobre OpenShift a Node.js y TypeScript en AWS ECS y Lambda.
- Ordo: Construí un entorno de preproducción en GKE con ArgoCD y GitOps.
- Calculadora de Ganancias: Construí una herramienta de proyección de impuestos para empleados con Haskell y Elm.
- Hero Motorcycles: Construí un sistema de venta online de motos con Elixir, Phoenix y React.
Paradigmas de Programación, UTN
Enseñanza de los conceptos escenciales de los paradigmas lógico, funcional y orientado a objetos.
MuleSoft Inc.
Mantuve un portal para descubrir e instalar más de 60 integraciones en una plataforma genérica de integración de servicios.
Freelance
Construí una aplicación web de orientación vocacional e implementé permisos jerárquicos por organización para solicitar acceso a integraciones en organizaciones padre.
Ozono Informatica
Mantuve sistemas Windows, configuré pfSense como balanceador de carga y gestioné máquinas virtuales Xen. Creé imágenes de Docker para simplificar el aprovisionamiento de instancias de Odoo para una propuesta de hosting.
Toteming SA
Mantuve y extendí un sistema de marketing para eventos con pulseras RFID, una app Android y una interfaz web, usado en eventos mensuales.
Proyectos
PdePreludat
Mantengo un Prelude alternativo para Haskell usado por miles de estudiantes en varias comisiones durante varios años.
HaskellBA
Organizo meetups de Haskell desde 2017.
ZuriHac 2019
Participé en el track avanzado del taller dictado por Well Typed sobre nuevas funcionalidades de GHC.
Conferer
Librería de Haskell de código abierto para gestionar la configuración de aplicaciones, con CI para las últimas diez versiones de GHC en Linux, macOS y Windows.
Banana Split
Aplicación de código abierto para dividir gastos. Escrita en Haskell y Elm. Esta desplegada en un clúster personal de Kubernetes con Helm y ArgoCD.
Configuración NixOS
Configuración de NixOS de código abierto para mis sistemas personales.
Charlas
Megaparsec: lo que las regex quieren ser cuando sean grandes
Introducción a los combinadores de parsers con Megaparsec.
Secretos para codear bash sin morir en el intento
Exploramos algunas de las características más anti-intuitivas de bash para entender cómo funcionan y lograr escribir scripts robustos.
Kubernetes más allá de los containers
Aprendemos algunos conceptos básicos de Kubernetes y exploramos porque en mi opinión la API de Kubernetes es más importante que su habilidad para correr containers.
WollokVM = run . compile . parse: Implementando una VM
Recorremos la implementación de una VM para el lenguaje Wollok usando Haskell. Junto a Facundo Gelatti.
Evaluando JavaScript en Haskell
Recorremos la implementación de un intérprete recursivo de JavaScript en Haskell para una ONG.
Haskell en el frontend: FRP con Reflex
Introducción a programación funcional reactiva con Reflex.
Formación
Universidad de Buenos Aires
Instituto Industrial Luis A. Huergo
Idiomas
- Español: Nativo
- Inglés: Avanzado