Cómo trabajo
Tomo un problema de negocio y devuelvo un sistema andando. Sin equipo detrás, sin depender de que otro escriba la parte difícil.
Eso significa hacerme cargo de todo el recorrido: entender qué necesita el negocio, modelar los datos, diseñar la interfaz, escribir el código, integrarlo con lo que ya existe, desplegarlo y sostenerlo funcionando. Incluida la parte que nadie quiere: las integraciones con APIs de terceros que cambian sin avisar, los estados intermedios, el manejo de errores y el monitoreo que avisa antes de que lo note el cliente.
Abajo está el trabajo en imágenes: el sistema más grande pantalla por pantalla, los sitios de clientes y los productos propios. Todo lo público tiene link para entrar a verlo.
LED Premium
Plataforma comercial completa para un fabricante argentino de iluminación: tienda online, bandeja de WhatsApp con bot, CRM, cotizador y automatizaciones. La diseñé, la construí y la sostengo como único desarrollador.
Ver sitio en vivo
Las capturas del panel muestran datos de clientes anonimizados.
Sitios para clientes
Cada uno con identidad visual propia: cambia la tipografía, la paleta, los componentes y el tipo de interacción según el rubro. Los publicados se pueden recorrer; el último está en desarrollo.
Productos propios
Asistente de obra con IA agente-obra
Agente con Google ADK que responde consultas técnicas buscando en documentación real (RAG) y cita la fuente de cada dato.
Python · FastAPI · Google ADK · Cloud Run Probar demoGestión de turnos Mi Blu
Reservas para negocios de servicios: agenda por profesional, recordatorios automáticos y agente de WhatsApp.
Next.js · TypeScript · Supabase Ver sitioPunto de venta multiempresa Miventa
Caja, stock, compras y cuenta corriente. Cada negocio ve solo sus datos, con seguridad por fila en PostgreSQL.
Next.js · Supabase · RLS Ver sistemaApp de colectivos LLEGANDO
Arribos en vivo, alarmas de llegada y paradas favoritas, con una caché que sirve el 96% de las consultas sin tocar el servidor de origen.
Next.js · Capacitor · Web Push Pendiente de publicaciónCRM de prospección en calle
Relevamiento de comercios por anillos alrededor de un café, ruta de visita y guion según el rubro.
Python · Flask · SQLite Uso internoAnatomía del sistema más grande
La plataforma de LED Premium, por capas. Cuatro meses de trabajo, escrita y sostenida por una sola persona. Los números salen del repositorio y de la base de producción.
Datos y acceso
PostgreSQL con seguridad por fila: los permisos viven en la base, no en el código de la aplicación, así una ruta mal escrita no puede filtrar información. Roles separados entre dueño y personal con vista limitada, y registro de auditoría de las acciones sensibles.
políticas RLS por rol
auditoría de cambios
Ingesta de datos
Servicio que consulta fuentes externas por rubro y zona, normaliza direcciones y teléfonos, deduplica contra lo ya cargado y asigna un puntaje según reglas de negocio configurables. Corre desatendido todos los días y descarta lo que no sirve sin intervención humana.
8 fuentes distintas
deduplicación y scoring
Mensajería y colas
Motor de secuencias con cupos diarios, ventanas horarias y cancelación automática ante respuesta. Cada envío queda registrado con su estado, y los fallos se reintentan con espera creciente. Dos canales con reglas distintas: correo transaccional y la API de WhatsApp, que tiene sus propios límites y plantillas aprobadas.
reintentos con backoff
control de duplicados
Integraciones
Meta Marketing API para crear y leer campañas, API de conversiones para atribución del lado del servidor, Mercado Pago con verificación de firma en los webhooks, IMAP para conciliar transferencias bancarias, y tres proveedores de modelos de IA con degradación elegante si alguno no responde.
webhooks firmados
tolerancia a fallos
Observabilidad
El sistema se vigila a sí mismo: un proceso revisa que las credenciales no hayan vencido, que las campañas sigan activas y que los procesos programados hayan corrido. Si algo falla, llega un aviso por Telegram con el detalle. Nació de un incidente real: un token vencido nos dejó ciegos y costó conversaciones perdidas.
alertas en tiempo real
reportes diarios
Cómo tomo decisiones técnicas
La seguridad va en la base
Si el aislamiento entre clientes depende de que cada consulta recuerde filtrar, tarde o temprano una no lo hace. Por eso las políticas viven en PostgreSQL y la aplicación no puede saltearlas.
Instrumentar antes de escalar
Primero la medición, después el volumen. Sin eventos registrados por canal no sabés qué mejorar, y terminás optimizando por intuición.
Todo lo externo se cae
Las APIs de terceros cambian, vencen y fallan. Cada integración tiene reintentos, modo degradado y una alerta que avisa antes de que el problema llegue al usuario.
Lo simple que resuelve
Sin abstracciones anticipadas. Un monolito bien ordenado que una persona puede sostener vale más que una arquitectura elegante que nadie mantiene.
Qué busco
Equipos donde pueda hacerme cargo de un problema completo y devolverlo funcionando.