Disponible para modalidad presencial o híbrida en San Rafael, Mendoza
Faustino DuránEstudiante de Ingeniería en Sistemas &Full Stack Developer
Mi fuerte es el backend — Node.js, TypeScript y Express — pero también cubro el frontend de mis proyectos (React, Next.js), lo necesario para completar un sistema sin depender de otra persona para el front.
El negocio no tenía sistema formal: ventas por corte con peso variable, cuentas corrientes informales ("fiado") con pagos parciales, gastos sueltos y ninguna forma de verificar que la caja cuadre al cierre del día.
Solución
Backend en capas (Express + PostgreSQL, sin ORM, con SQL escrito a mano) y un paquete compartido de esquemas Zod entre frontend y backend. El corazón del sistema es un flujo de cierre de caja open → finish con cuadre de doble entrada: lo vendido y cobrado debe coincidir exactamente con dónde está esa plata.
Decisión clave
La regla "un solo cierre de caja abierto a la vez" se garantiza con un índice único parcial en PostgreSQL, no solo en el código — es imposible tener dos cierres abiertos aunque haya un bug en el backend. Sistema en producción real; por manejar información financiera del negocio, el acceso queda privado — el código sí es público.
Liga Gestión
Liga municipal de básquet — gestión de torneos y planillaje (freelance)
La gestión de torneos, fixture y planillaje de una liga municipal de básquet se hacía de forma manual, sin trazabilidad ni una forma centralizada de organizar partidos y resultados.
Solución
API REST con arquitectura feature-based (boundaries de capas verificados automáticamente en CI), generación automática de fixture y bracket de playoffs con reglas de desempate en cascada, y portal de planillero en tiempo real con modo offline (IndexedDB) para cargar partidos sin conexión.
Decisión clave
Modelo de datos de 22 entidades (Prisma) con sistema de auditoría que registra cada operación crítica con actor, entidad y estado antes/después, para poder reconstruir cualquier cambio sobre un partido o resultado.
Sistema de Gestión de Baños Químicos con Trazabilidad QR
Don Fortunato — operaciones en campo, supervisión y reportes
ReactTypeScriptSupabasePWAIndexedDB
+1000Limpiezas registradas por mes
1 sem.De cero a producción
OfflineFunciona sin conexión
Problema
Don Fortunato necesitaba iniciar en una semana una operación para Techint con trazabilidad verificable por unidad, desde celulares y con conectividad irregular en campo.
Solución
PWA mobile-first con QR único por baño, registro de limpiezas y movilizaciones con GPS, fecha, hora e historial por unidad para operación, supervisión y cliente.
Decisión clave
Persistencia offline con IndexedDB y sincronización automática contra Supabase al recuperar señal. El registro no depende de la conectividad del momento.
Plataforma de Gestión Logística y Trazabilidad de Activos
Pampa Rental — alquiler de maquinaria pesada y flota logística
Contratos, flota y reportes de campo se gestionaban en planillas y canales fragmentados. La operación no tenía certeza sobre disponibilidad real ni verificación documental antes de cada entrega.
Solución
Plataforma web para centralizar alquileres, disponibilidad y auditoría visual por activo, con validaciones de negocio en backend y carga segmentada de documentación.
Decisión clave
La disponibilidad se calcula por ventanas temporales de contratos activos y no por un flag estático. Esto evita reservas superpuestas y estados inválidos en la flota.
Motor de Alertas Automatizadas para Flota y Compliance
Transporte — mantenimiento y cumplimiento normativo
Vencimientos, mantenimientos y tareas críticas se seguían manualmente en hojas de cálculo. Eso reducía previsibilidad, priorización e intervención temprana.
Solución
Motor serverless que procesa fuentes operativas, aplica reglas por categoría y envía notificaciones accionables a responsables antes de que el riesgo escale.
Decisión clave
Cloud Functions orquesta el procesamiento periódico y Secret Manager resguarda credenciales. La entrega por SMTP evita mantener infraestructura propia.
1 / 5
CÓMO TRABAJO
Construyendo software que genera impacto
Un recorrido por las decisiones técnicas, de producto y de entrega que uso para construir sistemas mantenibles y orientados a resultados.
Diseño la arquitectura según el contexto del producto, no por costumbre.
Cuando un sistema empieza pequeño priorizo claridad y velocidad. Cuando crece, separo responsabilidades para mantener el código entendible y fácil de evolucionar.
Trabajo con rutas, controladores, servicios, validaciones, persistencia y configuración claramente separadas.
Uso TypeScript, PostgreSQL, Prisma, Zod y Docker cuando el proyecto necesita tipado fuerte, validaciones confiables y entornos reproducibles.
Separación de responsabilidades
Validaciones antes de la lógica
Persistencia clara
Entornos reproducibles
requestresponse
src/backend structure
├─routes/HTTP entrypoints
├─controllers/request orchestration
├─validators/input contracts
├─services/business rules
├─repositories/persistence boundary
├─models/domain shape
├─database/PostgreSQL access
└─config/environment setup
02
Decisión 2
Del problema al producto
Antes de pensar en pantallas o código intento entender qué problema existe realmente.
Muchas veces el punto de partida es un proceso manual: papel, planillas, registros incompletos o poca visibilidad operativa.
Mi trabajo consiste en transformar ese proceso en un flujo simple, usable y trazable.
Me enfoco en que el sistema funcione en el contexto real donde será utilizado.
Entender el proceso real
Diseñar para el contexto operativo
Generar trazabilidad
Convertir acciones en información útil
01
Problema detectadoinformación dispersa
02
Proceso actualflujo operativo real
03
Cuellos de botellafricción operativa
04
Flujo propuestosecuencia trazable
05
Productosistema útil y organizado
03
Decisión 3
Testing y calidad técnica
Uso testing para proteger las partes donde un error tiene costo real.
No busco testear todo por cantidad.
Me enfoco en reglas de negocio, validaciones, casos borde y operaciones importantes.
Además de tests, reviso tipado, errores posibles y comportamiento general antes de considerar una entrega estable.
Validaciones
Tests unitarios
Tests de integración
Prevención de regresiones
quality-gate
Ejecutando controles...
Validaciones
Tests unitarios
Tests de integración
Tipado seguro
Lint
Entrega lista
04
Decisión 4
Automatización e IA aplicada
Uso automatización e IA para acelerar tareas repetitivas sin perder control sobre las decisiones importantes.
Automatizo reportes, validaciones, procesamiento de datos y tareas operativas cuando aportan valor.
La IA me ayuda a explorar alternativas, generar primeras versiones y acelerar trabajo técnico, pero la revisión y las decisiones siguen siendo humanas.
Trabajo con Claude Code: orquestación de agentes y sub-agentes, MCPs, Skills, gestión de contexto de sesión y configuración de CLAUDE.md / AGENTS.md.