Proyectos

Una selección de proyectos de ingeniería que abarcan desde SaaS multi-tenant y plataformas con inteligencia artificial hasta dashboards y herramientas CLI open source. Cada uno refleja mi enfoque en arquitectura limpia, testing automatizado y TypeScript estricto. Explorá el código, revisá los case studies o filtrá por tecnología.

Cómo trabajo

Cada proyecto que construyo arranca con una premisa simple: entender el problema antes de escribir una línea de código. Trabajo con arquitectura basada en features y principios de DDD-lite para que el dominio del negocio quede reflejado en la estructura del proyecto. Dedico una etapa inicial de investigación donde mapeo los flujos del usuario, identifico las entidades del dominio y defino los bounded contexts antes de tocar el editor. Esto reduce drásticamente la deuda técnica a largo plazo y garantiza que cada decisión de implementación responda a un requisito real del negocio. El resultado es una base de código donde los nombres de las carpetas reflejan capacidades del producto en lugar de capas técnicas.

Mi stack técnico es pragmático, no hype-driven. Elijo TypeScript por su seguridad de tipos, React para interfaces declarativas, Node.js con Express para APIs REST y PostgreSQL como base de datos relacional. En el frontend trabajo con React 19 y Tailwind CSS 4, priorizando accesibilidad WCAG 2.2 AA. Del lado del servidor construyo APIs con Express y Prisma ORM, aplicando validación con Zod y patrones de repositorio. Cada decisión de stack pasa por tres filtros: resuelve el problema real, agrega valor al equipo y mantiene la complejidad controlada.

Cada proyecto pasa por investigación, diseño de arquitectura, implementación con tests y deploy automatizado. Priorizo el código legible sobre la optimización prematura. La integración continua con GitHub Actions asegura que cada PR pase linter, type checking y la suite de tests antes del merge. Escribo tests unitarios con Vitest y React Testing Library, y tests de integración para endpoints de API. Cuando surge un bug, primero escribo un test que lo reproduzca y después lo corrijo. Esta disciplina me permite refactorizar con confianza y entregar software que funciona, incluso bajo presión de fechas.