Leonardo Lob

Senior Full Stack Software Engineer

Senior Full Stack Software Engineer y arquitecto hands-on con más de 25 años de experiencia construyendo sistemas productivos en comercio, logística, seguridad vial y productos de consumo.

Trabajo en todo el stack con una base sólida en backend — procesamiento de pedidos de alta concurrencia, workflows distribuidos, módulos de inteligencia adaptativa y migraciones sin downtime. Combino profundidad técnica en backend con responsabilidad completa de producto, desde decisiones de arquitectura hasta clientes móviles, y he liderado equipos y entregado proyectos individuales que están en producción y en uso hoy.

Proyectos Seleccionados

Proyectos

CPT — ERP B2B

ERP B2B core para una empresa de distribución de insumos de oficina, responsable de toda la operación comercial, logística y financiera. Centraliza pedidos, stock, facturación, pagos, cuentas corrientes e integraciones en tiempo real con MercadoLibre, Shopify, VTex, Stripe, PayPal y MercadoPago. Fue diseñado para operar bajo alta concurrencia manteniendo consistencia estricta en datos críticos, con módulos de inteligencia para depósito, procurement y riesgo crediticio.

9 años en producción

RolSenior Backend Engineer / Tech Lead hands-on. Responsable de arquitectura backend, modelado de dominio, lógica crítica de negocio, concurrencia, performance e integraciones. Liderazgo técnico de equipo de 5-7 developers.

  • Node.js
  • TypeScript
  • Express
  • TypeORM
  • MySQL
  • Vue.js
  • Quasar
  • RabbitMQ
  • Docker
  • Kubernetes

CargaOperación diaria de miles de pedidos, con picos de hasta ~2.000 pedidos por minuto, decenas de miles de usuarios externos y alrededor de 150 usuarios internos concurrentes.

ImpactoSistema core del negocio. Permitió escalar la operación sin pérdida de control, redujo errores operativos, bajó alrededor de 40% los errores de picking mediante recomendaciones adaptativas de depósito y soportó múltiples canales de venta en tiempo real con consistencia en stock y cuentas.

Detalle técnico

Recomendador de Ubicación

Todos los pedidos se preparan manualmente a escala. El sistema rastrea errores de picking agrupados por similitud de producto, por ejemplo mismo proveedor o misma categoría, identificando qué combinaciones generan más confusión. Cuando un patrón supera cierto umbral, el sistema propone una reubicación dentro del depósito. Si el operador la acepta, se inicia un ciclo de seguimiento de varios días monitoreando picks posteriores sobre esos artículos hasta alcanzar un volumen estadísticamente significativo, y luego informa si la tasa de error mejoró. Este loop cerrado de feedback redujo los errores de picking en alrededor de 40%.

Recomendador de Compras

Sugerencias automáticas de compra para el equipo de procurement basadas en rotación de productos, lead times de proveedores, datos históricos de ventas y patrones estacionales de demanda. Cuando un operador aprueba una sugerencia, el sistema genera automáticamente la orden de compra y la envía al proveedor. Luego se mide el cumplimiento real de entrega contra los lead times comprometidos; si un proveedor entrega sistemáticamente antes o después, el sistema ajusta sus parámetros futuros de recomendación. Eso creó un loop de procurement que se auto-mejora y gana precisión a medida que acumula datos reales de comportamiento del proveedor.

Recomendador de Riesgo Crediticio

Workflow asistido de aprobación de pedidos basado en historial de pagos, órdenes pendientes, saldo actual y cheques diferidos en cartera de cada cliente. El sistema preaprueba o prerechaza automáticamente los pedidos entrantes, dejando al responsable del sector sólo los casos borderline para revisión manual. Los parámetros de riesgo son configurables en varios niveles de granularidad: umbrales globales por default, con overrides por vendedor, por cliente o por ventana temporal. Esta configuración en capas permitió controlar la exposición crediticia con granularidad fina sin revisar manualmente cada pedido.

Mali — ERP y Plataforma de Comercio

ERP y plataforma de comercio para uno de los comercios minoristas y mayoristas de librería más grandes de Buenos Aires, con operación minorista, mayorista y canales online orientados al público. Fue construida para sostener gran volumen transaccional bajo demanda estacional intensa, especialmente en el período previo al ciclo lectivo, con ingestión desde Shopify y storefront propio más módulos específicos de optimización de stock y riesgo crediticio.

9 años en producción

RolSenior Backend Engineer / Tech Lead hands-on. Arquitectura, diseño de dominio, integraciones y mentoría técnica sobre un equipo de 4 developers.

  • Node.js
  • TypeScript
  • Express
  • TypeORM
  • PostgreSQL
  • React
  • RabbitMQ

Carga~50 ventas por minuto en pico, con más de 100 ítems por venta en promedio.

ImpactoSostuvo la actividad comercial core bajo picos estacionales intensos y permitió operación minorista, mayorista y multicanal con continuidad transaccional.

Detalle técnico

Motor de Optimización de Stock

Los pedidos minoristas suelen tener 100 o más ítems, y las faltas de stock son comunes en los picos estacionales. Cuando una orden no puede completarse íntegramente, el sistema redistribuye automáticamente los ítems disponibles para cubrir otros pedidos que sí pueden cerrarse y despacharse. La priorización corre sobre varios criterios simultáneos: clientes VIP y pedidos grandes reciben preferencia, los pedidos previamente pagados tienen prioridad sobre contra reembolso, y el motor favorece completar envíos de alto valor antes que retener stock para órdenes parciales. Esto maximizó el throughput de fulfillment durante el pico de vuelta a clases sin intervención manual.

Módulo de Riesgo Crediticio

Workflow asistido de aprobación de pedidos basado en historial de pagos del cliente, saldos pendientes y órdenes abiertas. El sistema preaprueba o prerechaza automáticamente los pedidos entrantes, dejando a los managers sólo los casos borderline para revisión manual. Es más simple y enfocado que un motor completo multiparámetro, ajustado específicamente a la exposición crediticia mayorista de Mali.

Experta Seguros — Sistema de Monitoreo de Conductores

Plataforma de seguridad vial en tiempo real para flotas de transporte, enfocada en detectar fatiga, somnolencia y distracción mediante análisis continuo desde la cámara del celular. Construida alrededor de flujos críticos de seguridad donde la latencia y la confiabilidad impactan directamente en la seguridad vial, combinando detección on-device, eventos backend en tiempo real, monitoreo operativo de flotas y contexto en vivo de ubicación, velocidad y tránsito vía Google Maps.

6 años en producción

RolIngeniero full stack, principalmente frontend y mobile: UI de eventos en tiempo real, flujos de alerta, dashboard y clientes móviles en iOS y Android.

  • Node.js
  • MySQL
  • React
  • Swift
  • Kotlin

Carga180 vehículos concurrentes monitoreados en producción

ImpactoMejoró la operación de seguridad de flotas con visibilidad en tiempo real de alertas, herramientas de respuesta operativa y tracking histórico de eventos sobre vehículos activos.

Detalle técnico

Detección On-Device

La detección de fatiga y distracción corría completamente en el dispositivo móvil usando librerías nativas de visión por computadora, con implementaciones separadas para iOS y Android. El sistema establecía una línea base facial para cada conductor al inicio de la sesión y luego monitoreaba continuamente niveles de cierre ocular y ángulo de inclinación de la cabeza. La calibración de esa línea base requirió ajustes específicos para contemplar variaciones fisiológicas entre distintas poblaciones de conductores, incluyendo diferencias estructurales en la forma de los ojos que afectaban la precisión de detección.

Pipeline de Alertas

Cuando el dispositivo detectaba un evento de somnolencia o distracción, la app disparaba de inmediato una alarma audible en el móvil y enviaba una señal de alerta al backend. Cada alerta incluía ubicación en tiempo real, velocidad actual y contexto del tránsito cercano obtenido desde Google Maps. Un dashboard de flota daba a operaciones visibilidad sobre alertas activas e histórico de eventos de todos los vehículos monitoreados.

SirenForecast — App de Probabilidad de Alertas

Aplicación web pública que estima la probabilidad estadística de actividad de alertas por cohetes en cualquier ciudad de Israel, usando datos históricos de Tzeva Adom. Fue lanzada un par de semanas luego del inicio de la guerra con Irán, que comenzó a fin de febrero de 2026. Alrededor de 1.000 visitas diarias. Construida como una capa estadística pública sobre datos históricos de alertas, combinando modelado de probabilidad por ciudad y ventana horaria, análisis de riesgo por ruta, experiencia multilenguaje, una capa de correlación con noticias en X, pipelines de datos en background y herramientas internas de operación.

Acceso público: sirenforecast.com/en

RolResponsabilidad completa de producto e ingeniería en frontend, backend, modelado de datos y jobs auxiliares. Desarrollado end to end como proyecto individual.

  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Prisma

CargaAlrededor de 1.000 visitas diarias

ImpactoTransformó datos históricos crudos en un producto público con orientación práctica de riesgo por ciudad y trayecto, junto con herramientas internas para mantener el dataset confiable.

Detalle técnico

Pipeline de Datos

Los datos históricos de alertas se ingieren desde la API pública oficial de Tzeva Adom, con jobs de sync continuo, backfill y enriquecimiento por ciudad corriendo en background para mantener el dataset actualizado y completo.

Motor de Probabilidad

La probabilidad de alertas se calcula estadísticamente sobre datos históricos, segmentados por ciudad y ventana horaria. Una segunda capa monitorea en tiempo real feeds de noticias en X. Ciertos patrones de noticias mostraron correlación con aumentos en actividad de alertas, y el sistema incorpora esas señales a sus estimaciones cuando aparecen.

Analizador de Riesgo de Ruta

Dado un origen y un destino, el sistema obtiene la ruta desde Google Maps y calcula la probabilidad de alerta para cada ciudad a lo largo del trayecto. Luego modela el riesgo según diferentes horarios de salida y muestra las mejores y peores ventanas para realizar el viaje.

Herramientas de Administración

Herramientas internas permiten monitoreo de datos, disparadores manuales de backfill y gestión del enriquecimiento por ciudad, manteniendo el dataset limpio operativamente sin intervención directa sobre la base.

BingoAdom — App Social de Bingo

App social liviana que transforma momentos compartidos durante sirenas en una experiencia de bingo humorística. Fue lanzada un par de semanas luego del inicio de la guerra con Irán, que comenzó a fin de febrero de 2026. ~500 usuarios activos en sus primeras tres semanas. Construida como un producto social lúdico alrededor de situaciones reales compartidas durante sirenas, con una UX simple en la superficie, cartones generados de forma única a partir de 36 escenarios, una capa social en tiempo real por debajo y sharing directo a redes externas.

Acceso público: www.bingoadom.com

RolResponsabilidad completa de producto e ingeniería: diseño de producto, UX, implementación full stack y arquitectura. Desarrollado de punta a punta como proyecto individual.

  • Vue.js
  • Quasar
  • Python
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Docker
  • Kubernetes
  • RabbitMQ
  • Redis
  • WebSockets

Carga~500 usuarios activos en sus primeras tres semanas

ImpactoTransformó una realidad cotidiana estresante en una interacción social compartida, con adopción rápida, engagement en tiempo real y una propuesta de producto muy clara.

Detalle técnico

Generación de Cartones

La app tiene 36 situaciones reales fijas tomadas de experiencias cotidianas vinculadas a sirenas. Cada vez que un usuario pide un cartón, el sistema genera uno único seleccionando aleatoriamente 8 escenarios. No hay dos sesiones iguales.

Capa Social en Tiempo Real

Un leaderboard público muestra los cartones activos de todos los usuarios y se actualiza en tiempo real vía WebSockets. Los usuarios pueden dar like a los cartones de otros y compartirlos directamente en redes sociales, convirtiendo una experiencia personal en algo compartido y colectivo. Las interacciones en tiempo real se separaron deliberadamente del trabajo de fondo más pesado para mantener la respuesta del producto bajo carga.

Arquitectura Escalable

El producto fue totalmente dockerizado desde el primer día y diseñado para escalar horizontalmente. RabbitMQ se usó para desacoplar el procesamiento en background del camino principal de requests mediante workers dedicados, permitiendo que las tareas más pesadas crecieran de forma independiente de la capa web. Redis se incorporó como capa de caché para reducir lecturas repetidas y mantener una experiencia ágil bajo tráfico compartido.

Area54 — Plataforma de Almacenamiento y Logística

Plataforma operativa para gestión física de almacenamiento y coordinación logística a través de cuatro depósitos en Argentina. Gestiona asignación de almacenamiento, ruteo de entregas, turnos y manejo especializado para mercadería de alto valor y productos con cadena de frío, incluyendo flujos de acceso restringido y ruteo multi-restricción vía Google Maps.

6 años en producción

RolIngeniero full stack — workflows operativos, modelado de datos, lógica de negocio y migración incremental de una base legacy en VB/PHP hacia stack moderno sin downtime.

  • Node.js
  • TypeScript
  • MySQL
  • PHP
  • Visual Basic
  • Vue.js
  • Quasar
  • Google Maps API

Carga4 depósitos: ~20 pasillos, ~30 estantes y ~20 slots cada uno; 12 vehículos propios + 6 externos, 3 turnos de entrega por día

ImpactoCentralizó operación multi-depósito, coordinación de entregas y flujos de acceso restringido mientras modernizaba un sistema crítico sin interrumpir la operación diaria.

Detalle técnico

Migración Legacy sin Downtime

El sistema original estaba construido en Visual Basic y PHP y no toleraba downtime. La operación corría de forma continua en tres turnos diarios. La migración a un stack moderno se ejecutó de manera incremental, reemplazando módulos pieza por pieza mientras el sistema legacy seguía funcionando en paralelo. No hubo interrupción alguna en la operación de depósito o entregas durante todo el proceso.

Optimizador de Rutas de Entrega

La lógica de ruteo iba más allá de optimizar recorridos. El sistema asociaba zonas de entrega con tamaños de vehículo adecuados, excluyendo camiones grandes de áreas urbanas densas donde maniobrar no era práctico, y secuenciaba la carga para que los ítems de última entrega fueran cargados primero. Las rutas se calculaban con Google Maps y se ajustaban por turno tanto para vehículos propios como externos.

Workflows de Acceso Restringido

La mercadería de alto valor se almacena en jaulas cerradas que requieren presencia de personal autorizado para poder acceder. El sistema gestionaba la disponibilidad de ese personal como parte del workflow de fulfillment, asegurando que la persona correcta estuviera asignada antes de confirmar un pick o una entrega.

Lyris Digital — Plataforma B2B de Procurement

Plataforma B2B de procurement que conecta clientes corporativos y proveedores de artículos de oficina alrededor de workflows de compra más eficientes. Los proveedores suben sus catálogos, los clientes cargan pedidos y el sistema asigna automáticamente cada orden al mejor proveedor disponible según parámetros configurables de negocio, con asignación provisoria en tiempo real y una pasada batch nocturna de optimización.

7 años en producciónAcceso público: productos.lyrisdigital.com/quienes-somos

RolIngeniero full stack — workflows de procurement, motor de matching, gestión de catálogos y lógica operativa.

  • Node.js
  • TypeScript
  • Express
  • MySQL
  • Vue.js
  • Quasar

Carga100 órdenes diarias en operación normal, con picos de 3.000 durante campañas

ImpactoMejoró la eficiencia de compras combinando asignación inmediata de proveedor con optimización posterior, adaptando además el comportamiento del matching a las reglas comerciales de cada cliente.

Detalle técnico

Motor de Matching en Dos Fases

Cuando un cliente carga un pedido, el sistema genera de inmediato una asignación provisoria de proveedor basada en disponibilidad actual de catálogo y reglas de negocio configuradas, dando feedback instantáneo al usuario. Cada noche, un proceso batch revisa todas las asignaciones pendientes, incorpora cambios de precio, disponibilidad y parámetros de optimización, y corrige o mejora los matches generados durante el día. Este enfoque en dos fases equilibró capacidad de respuesta y precisión.

Parámetros Configurables de Matching

La lógica de matching no era fija. Cada cliente podía definir sus propias reglas de negocio: umbrales de rentabilidad, ranking de proveedores preferidos, exclusiones y otras restricciones operativas. El motor aplicaba esos parámetros tanto en la fase en tiempo real como en la fase batch, asegurando que las asignaciones reflejaran las prioridades comerciales de cada cliente y no un algoritmo genérico de talle único.

Kenwin — Plataforma de Capacitación Corporativa

Plataforma de capacitación corporativa para programas de aprendizaje sincrónicos y asincrónicos, utilizada por empresas en toda la Argentina. Gestiona oferta de cursos, compra de cupos, seguimiento de asistencia y coordinación de sesiones en vivo a escala a través de cupos individuales, paquetes corporativos, cuotas mensuales y add-ons de prioridad, evolucionando desde infraestructura de video propia hacia integración con Zoom API.

4 años en producciónAcceso público: www.kenwin.net/home

RolIngeniero full stack — workflows de plataforma, backoffice, flujos de pago, gestión de cupos e integración de sesiones en vivo.

  • Node.js
  • TypeScript
  • MySQL
  • React
  • Zoom API

Carga10.000 usuarios en 100 clientes corporativos, con hasta 8 sesiones en vivo concurrentes

ImpactoPermitió operar programas de capacitación corporativa a escala bajo múltiples modelos comerciales, con sesiones en vivo confiables y una infraestructura más mantenible.

Detalle técnico

Complejidad del Modelo Comercial

La plataforma soportaba simultáneamente varias estructuras de compra: compra individual de cupos, paquetes corporativos en volumen, cuotas mensuales fijas con slots preasignados y add-ons de prioridad para empresas que necesitaban acceso garantizado. Cada modelo tenía su propia lógica de cupos, vencimientos y prioridades corriendo en paralelo.

Gestión de Sesiones Sincrónicas

Las sesiones en vivo incluían control de asistencia en tiempo real y administración de cupos. La plataforma corría originalmente sobre una infraestructura de video propietaria desarrollada in-house. Cuando Zoom se consolidó como estándar de mercado, el sistema fue migrado a la Zoom API, una decisión arquitectónica pragmática que redujo costos de mantenimiento y mejoró la confiabilidad para los usuarios finales.

Aprendizaje Asincrónico

Los cursos on-demand combinaban contenido en video subido a la plataforma con cuestionarios posteriores a cada sesión, trazados tanto por usuario como por cuenta corporativa para reporting y compliance.

ShopWise — App Familiar de Compras

App colaborativa de compras familiares con sincronización de listas en tiempo real entre dispositivos. Disponible en web, App Store y Google Play. Construida como un producto cross-platform para compras compartidas del hogar, combinando colaboración en vivo sobre WebSockets, carga asistida por IA, membresía en múltiples familias y workflows de compra orientados a mobile, con parseo de recetas a listas y matching visual de productos en desarrollo.

3 meses en producciónAcceso público: www.shopwiseweb.com

RolResponsabilidad completa de producto e ingeniería — diseño de producto, backend, web, iOS y Android. Desarrollada end to end como proyecto individual.

  • Node.js
  • Express
  • TypeScript
  • MySQL
  • Quasar
  • SwiftUI
  • Kotlin

ImpactoTransformó la compra compartida del hogar en un workflow vivo entre dispositivos, llevando además funcionalidades de IA a un caso de uso cotidiano de producto de consumo.

Detalle técnico

Colaboración en Tiempo Real

La sincronización de listas corre sobre WebSockets porque el caso de uso central depende de propagación inmediata de estado. Cuando un miembro de la familia marca un ítem como comprado en el supermercado, se actualiza al instante en los dispositivos del resto sin necesidad de refrescar manualmente. El sistema soporta membresía múltiple, por lo que un usuario puede pertenecer y colaborar activamente en listas de varias familias al mismo tiempo.

Capa de IA

La detección de duplicados usa IA para identificar cuándo un mismo producto fue agregado dos veces con nombres o formulaciones distintas, capturando variaciones que una simple comparación de strings no detectaría. El dictado por voz va más allá de transcribir: interpreta listas de compra habladas de forma natural. Entre las funcionalidades de IA en desarrollo están el parseo de recetas a listas de compra y el matching visual de productos a partir de una foto tomada en el supermercado.

Inner Attack Reloaded — Juego Arcade para iPhone

Arcade space shooter para iPhone, rápido y adictivo, basado en sesiones cortas y en comportamiento enemigo progresivamente más inteligente. Fue construido como un arcade responsivo con física de movimiento propia, colisiones sobre SpriteKit, inteligencia enemiga creciente y una curva de dificultad definida por comportamiento y no solo por números.

RolResponsabilidad completa de producto e ingeniería — diseño del juego, física, IA e implementación. Desarrollado end to end como proyecto individual.

  • Swift
  • SpriteKit
  • iOS

ImpactoPermitió entregar una experiencia arcade pulida donde la dificultad resulta interesante por el comportamiento adaptativo de los enemigos, no solo por subir stats.

Detalle técnico

Progresión de IA Enemiga

El comportamiento enemigo evoluciona a través de cuatro etapas bien diferenciadas. En los niveles iniciales los enemigos no disparan. A medida que sube la dificultad, comienzan a disparar a intervalos aleatorios, luego apuntan directamente a la posición actual del jugador, y en el nivel más alto analizan su patrón de movimiento para predecir su posición futura, disparando hacia donde el jugador se dirige y no hacia donde está. Esto generó una curva de dificultad natural, que recompensa a jugadores experimentados sin dejar de ser accesible al inicio.

Motor de Física

El movimiento y la detección de colisiones fueron construidos sobre SpriteKit, con ajuste fino de física para lograr una nave responsiva y un comportamiento preciso de colisión de misiles frente a distintos patrones de ataque enemigo.