Hola, soy Julián Zabala
Lic. en Sistemas & Backend Engineer.
Diseño sistemas de software escalables y resilientes para entornos de producción. Especializado en Node.js, SQL Server, PostgreSQL, ORMs (Sequelize, Prisma), AWS (EC2, S3, Route 53), Swagger, Angular 17 y React.

Más que escribir código: diseñar soluciones robustas que soporten el crecimiento del negocio.
Soy Licenciado en Sistemas y desarrollador Full Stack con fuerte especialización en Backend, arquitectura por capas y sistemas distribuidos. Mi formación universitaria en Ciencias de la Computación y Sistemas me otorga una comprensión rigurosa de algoritmos, estructuras de datos, transaccionalidad ACID y modelos de concurrencia, que aplico a diario en sistemas que manejan alta disponibilidad y criticidad operativa.
Trabajo con foco en mantenibilidad a largo plazo: código desacoplado mediante inversión de dependencias, tipado exhaustivo, documentación de APIs bajo contratos formales (OpenAPI/Swagger) y despliegues reproducibles con servicios en la nube (AWS EC2, S3, Route 53).
Licenciado en Sistemas
Formación universitaria completa: teoría de sistemas, diseño de bases de datos, algoritmos de grafos y ruteo, y metodologías de ingeniería de software.
Deploy en AWS
Herramientas de AWS en producción: instancias EC2 para servicios backend, buckets S3 para almacenamiento seguro de activos y Route 53 para DNS y enrutamiento con alta disponibilidad.
Documentación Swagger
Especificación OpenAPI 3.0 con Swagger: contratos formales de endpoints REST, esquemas interactivos de request/response y tipado estricto para sincronía perfecta con frontend.
ORMs: Sequelize & Prisma
Capa de datos robusta: mapeo objeto-relacional con Sequelize y Prisma, control de migraciones, transacciones atómicas y prevención rigurosa de cuellos de botella y consultas N+1.
Cómo pienso
Pienso en sistemas y flujos de datos antes de tocar el teclado. Analizo las invariantes de negocio, los posibles puntos de fallo (red, base de datos, servicios externos) y cómo recuperarse con elegancia sin corromper el estado.
Cómo trabajo
Código limpio, estructurado y testeado. Automatizo los pipelines de CI/CD para que cada cambio pase por lint, typecheck y tests de integración con Docker. Creo en la comunicación transparente y la documentación clara en arquitectura.
Qué me motiva
Resolver problemas técnicos complejos donde la escala importe. Entender las entrañas de los motores (el WAL de PostgreSQL, el event loop de Node, los protocolos AMQP) y aplicar ingeniería deliberada que aporte valor directo al negocio.
Principios de Ingeniería que Guían Mis Decisiones
Criterios innegociables aplicados en cada feature y refactorización.
Integridad de Datos sobre Conveniencia
En sistemas transaccionales, la consistencia eventual debe ser deliberada, no un accidente. Prefiero transacciones ACID y aislamiento estricto en SQL Server o PostgreSQL antes que delegar la coherencia a la capa de aplicación.
Diseño para el Fallo e Idempotencia
En redes distribuidas y colas de mensajería (RabbitMQ, BullMQ), los mensajes se retrasan, se duplican o se reintentan. Diseñar con Transactional Outbox, Dead Letter Queues y cache-aside en Redis previene inconsistencias y saturación.
Arquitectura en Capas y Monolito Modular
Separación rigurosa de responsabilidades (Routes → Controllers → Services → Repositories). Utilizo contenedores IoC (tsyringe) y Bounded Contexts (DDD-lite) para crear sistemas altamente cohesivos, testeables y fáciles de escalar.
Observabilidad y Calidad Automatizada
Un fallo no detectado en un test de integración es una deuda en producción. Más de 100 tests automatizados con Jest y SuperTest, CI/CD continuo y telemetría en tiempo real (SSE) garantizan estabilidad y deploys seguros.
Proyectos Destacados: Arquitectura & Trade-Offs
No son simples clones ni interfaces con datos falsos. Cada proyecto está documentado con el problema real, decisiones técnicas justificadas, alternativas descartadas y resultados medidos.
pk-connector — Plataforma de Integración iPaaS / ELT On-Premise
Motor ELT asíncrono para integrar sistemas empresariales (SAP S/4HANA, Solera RNA, Roadnet) con RabbitMQ y Redis.
Sistema de Ruteo Logístico & Event Bus Transaccional
Arquitectura por capas con contenedor IoC (tsyringe, ~90 servicios), Event Bus CQRS-lite y Angular 17 multi-tenant.
VínculoSalud — Gestión de Turnos para el Sector Salud
Arquitectura en capas con Chain of Responsibility, Unit of Work y Query Builder dinámico protegido.
GeCe Comercial — ERP/POS para Comercios
Monolito modular por dominio (DDD-lite), Transactional Outbox y frontend React con separación estricta de estado.
Arquitectura y Buenas Prácticas de Ingeniería
Patrones no por moda, sino por necesidad técnica. Cómo abordo la consistencia de datos, desacoplamiento de microservicios, contención de concurrencia y resiliencia en backend.
Transactional Outbox Pattern
Garantiza la publicación atómica de eventos en brokers de mensajería (RabbitMQ) junto con cambios en la base de datos relacional sin usar transacciones distribuidas (2PC).
Al actualizar la base de datos y luego publicar a RabbitMQ, si el proceso o la red fallan entre medio, se produce una inconsistencia irrecuperable: o la base de datos cambia y el evento no se envía, o el evento se envía y la base de datos hace ROLLBACK.
Persistir los eventos de dominio en una tabla auxiliar `outbox_events` dentro de la misma transacción ACID de la base de datos. Un proceso relay (worker) separado lee los eventos no publicados, los envía al broker y los marca como entregados.
- •Añade latencia mínima entre el guardado y la publicación (polling o change data capture).
- •Requiere que los consumidores sean idempotentes, ya que la entrega garantizada es "at-least-once".
// Transacción Atómica
await db.transaction(async (trx) => {
// 1. Mutar estado de negocio
const order = await trx('orders').insert(orderData).returning('*');
// 2. Insertar evento en Outbox (mismo commit)
await trx('outbox_events').insert({
aggregate_id: order.id,
event_type: 'ORDER_CREATED',
payload: JSON.stringify(order),
status: 'PENDING'
});
});
// 3. Worker independiente lee PENDING y envía a RabbitMQ con ACKCasos de Estudio: Mi Proceso para Resolver Incidentes Críticos
Un Tech Lead evalúa cómo razona un ingeniero bajo presión. Aquí detallo incidentes reales de producción: los síntomas detectados, las hipótesis descartadas, la causa raíz encontrada y las medidas definitivas aplicadas.
Experiencia Profesional: Decisiones e Impacto
No una lista pasiva de tareas diarias. En cada etapa destaco los desafíos técnicos que enfrenté, las decisiones de arquitectura que tomé y los resultados cuantitativos entregados a la empresa.
Desarrollador Full Stack
Sistema de Ruteo Logístico (Node.js, TypeScript, Express + Angular 17)
- •Diseñé y mantengo el backend en arquitectura por capas (Routes → Controllers → Services → Repositories) con inyección de dependencias vía contenedor IoC (tsyringe, ~90 servicios): más de 100 endpoints REST en producción, cubiertos por más de 100 tests automatizados con Jest y SuperTest.
- •Implementé un Event Bus de dominio (patrón Observer/Pub-Sub) que sincroniza SQL Server con Firebase en tiempo real bajo un esquema CQRS-lite, con reintentos con backoff exponencial ante fallos.
- •Lideré la migración del almacenamiento de Firebase a SQL Server, reduciendo costos de infraestructura y sumando integridad transaccional (ACID).
- •Desarrollé el frontend en Angular 17 con arquitectura modular y lazy loading, interceptores HTTP para autenticación JWT multi-tenant, route guards por rol y soporte white-label para múltiples marcas.
pk-connector — Plataforma de Integración iPaaS / ELT On-Premise
- •Diseñé un motor ELT asíncrono para integrar sistemas empresariales (SAP S/4HANA, Solera RNA, Roadnet), aplicando Strategy + Factory para incorporar nuevas integraciones sin modificar el núcleo (Open/Closed).
- •Construí el procesamiento distribuido con RabbitMQ (competing consumers, Dead Letter Queues) y manejo diferenciado de errores transitorios vs. terminales para tolerancia a fallos.
- •Optimicé el rendimiento con cache-aside en Redis, monitoreo en tiempo real vía Server-Sent Events y protección de credenciales con encriptación AES-256-GCM.
- •Garantizar la estabilidad y desacoplamiento de más de 90 servicios inyectados en el backend mediante contenedor IoC (tsyringe) sin dependencias circulares.
- •Sincronización tolerante a fallos entre el almacenamiento transaccional (SQL Server) y el feed en tiempo real (Firebase) ante microcortes de red.
- •Integración con ERPs corporativos cerrados y legacy on-premise (SAP, Solera, Roadnet) con APIs heterogéneas y estrictas políticas de seguridad.
- •Adopción de contenedor IoC (tsyringe) para inyección de dependencias estricta en ~90 servicios organizados por capas.
- •Diseño de Event Bus de dominio (Observer/Pub-Sub) con esquema CQRS-lite y reintentos con backoff exponencial.
- •Migración estratégica de base de datos desde Firebase Firestore a SQL Server con soporte ACID y reducción de costos.
- •Motor ELT con patrones Strategy + Factory para adherir a Open/Closed al integrar nuevos ERPs.
- •Procesamiento asíncrono distribuido con RabbitMQ (competing consumers + DLQ) y cache-aside en Redis con AES-256-GCM.
- Más de 100 endpoints REST en producción respaldados por una suite de +100 tests automatizados con Jest y SuperTest.
- Reducción drástica de costos de infraestructura y ganancia de integridad transaccional ACID con SQL Server.
- Procesamiento continuo y resiliente de eventos de integración empresarial hacia SAP S/4HANA, Solera RNA y Roadnet.
- Arquitectura frontend multi-tenant en Angular 17 con soporte white-label para múltiples marcas.
Desarrollador de Software
- •Relevamiento directo de requerimientos de clientes comerciales e industriales y traducción técnica a especificaciones funcionales.
- •Resolución ágil de incidencias en entornos productivos críticos donde las fallas paralizaban la operatoria comercial.
- •Optimización de tiempos de respuesta en consultas SQL sobre bases de datos relacionales en crecimiento.
- •Análisis y optimización de consultas SQL críticas, eliminando cuellos de botella mediante planes de ejecución e indexación selectiva.
- •Desarrollo modular de nuevas funcionalidades asegurando compatibilidad hacia atrás y estabilidad del sistema.
- •Establecimiento de protocolos de diagnóstico rápido para reducir el tiempo medio de resolución de incidencias en campo.
- Gestión exitosa de cartera de clientes comerciales e industriales asegurando continuidad operativa ininterrumpida.
- Optimización de rendimiento en consultas y reportes SQL críticos del sistema.
- Resolución de incidencias en plazos reducidos con alta fidelización y satisfacción del cliente.
Stack Tecnológico con Criterio de Selección
No colecciono logos en un grid pasivo. Cada herramienta en mi stack tiene una justificación técnica basada en sus garantías de consistencia, rendimiento y mantenibilidad.
Backend & Sistemas Distribuidos
Mi núcleo principal de especialización: diseño de servicios tolerantes a fallos, procesamiento asíncrono y concurrencia.
Event loop, streams, optimización de memoria, clustering y profiling
Middlewares de seguridad, Chain of Responsibility, RESTful APIs
Competing consumers, DLX/DLQ, colas de prioridad, backpressure y ACKs
Cache-aside, distributed locks, pub/sub, tokens atómicos y TTL
Workers asíncronos con Redis, reintentos con backoff exponencial y dead-letter
Telemetría unidireccional en tiempo real para monitoreo de pipelines
Bases de Datos, Almacenamiento & ORMs
Enfoque en consistencia ACID, diseño de esquemas normalizados, mapeo objeto-relacional y optimización profunda de consultas.
Integridad transaccional ACID, migraciones en producción y sincronización
Transacciones ACID, FOR UPDATE SKIP LOCKED, índices avanzados
ORMs relacionales, query builders tipados, transacciones gestionadas y asociaciones
Modelado relacional declarativo, migraciones automáticas y cliente 100% type-safe
EXPLAIN ANALYZE, planes de ejecución, índices parciales y compuestos
Sincronización de estado en tiempo real bajo esquemas CQRS-lite
Arquitectura & Patrones
Estructuras de software probadas para mantener código desacoplado, testeable y mantenible en el tiempo.
Separación estricta con inyección de dependencias IoC (tsyringe, ~90 servicios)
Organización por Bounded Contexts preparada para extracción a microservicios
Consistencia at-least-once sin dual-write en auditoría y brokers de mensajería
Sincronización Observer/Pub-Sub entre almacenamiento relacional y tiempo real
Incorporación de nuevas integraciones ERP (SAP, Solera, Roadnet) sin alterar el core
Transaccionalidad en reservas críticas y pipelines de validación estricta
Testing Automatizado & Calidad
Pirámide de testing completa como garantía de refactorización segura y estabilidad continua.
Más de 100 tests unitarios y de integración en producción con mocks estrictos
Tests de integración de endpoints HTTP contra bases de datos reales
Ejecución automática de suites de pruebas antes de cada merge y despliegue
Cloud, Deploy & DevOps
Herramientas de despliegue en la nube, infraestructura como código y automatización del ciclo de vida.
Deploy en producción: EC2 para backend, S3 para assets/storage duradero y Route 53 para DNS
Contenedores multi-etapa para entornos de desarrollo y testing reproducibles
Despliegues continuos automatizados para backend y frontend en producción
Pipelines automatizados de linting, testing, build y entrega continua
Argon2, cifrado AES-256-GCM para credenciales, JWT multi-tenant, RBAC y OWASP
Documentación & Contratos de API
Definición de especificaciones estrictas para interoperabilidad clara entre frontend, backend y terceros.
Documentación interactiva de APIs REST, contratos formales y validación de esquemas
Interfaces compartidas y tipado estricto entre cliente y servidor sin discrepancias
Frontend & UI Engineering
Capacidad para construir interfaces modernas, modulares y de alto rendimiento.
Arquitectura modular, lazy loading, interceptores HTTP, route guards y soporte white-label
Arquitectura feature-based, hooks avanzados y componentes de alta interactividad
Separación estricta de server-state, caché reactiva y revalidación en segundo plano
Client-state liviano y atómico sin boilerplate innecesario
Tooling ultrarrápido y sistemas de diseño adaptables
IA Aplicada a la Ingeniería
Aceleración del ciclo de vida del desarrollo y diseño de flujos asistidos con modelos de lenguaje.
Integración en terminal con Claude Code para refactorización, code review y debugging exhaustivo
Diseño e implementación de arneses de pruebas (test harnesses) para evaluación determinista y validación de agentes
Diseño de suites de edge cases, test mutation y prompts estructurados
Scaffolding automatizado de capas de Clean Architecture y verificación estática
Ecosistema en GitHub & GitLab
Consistencia y rigor de ingeniería. Código estructurado, Conventional Commits, pipelines automatizados de CI/CD con jobs en GitLab y GitHub Actions.
feat, fix, refactor, test, perfPipelines con stages de lint, test, build y Docker image packaginggece-comercial
ERP/POS para comercios. Monolito modular por dominio (DDD-lite), Transactional Outbox con BullMQ, PostgreSQL, Redis y React.
vinculosalud
Gestión de turnos para el sector salud. Chain of Responsibility, Unit of Work, Query Builder dinámico protegido y React 19.
pk-connector
Plataforma iPaaS/ELT on-premise con Strategy + Factory (Open/Closed), RabbitMQ, Redis cache-aside y SSE.
Iniciemos una conversación técnica
Si tu equipo busca un Software Engineer comprometido con la calidad, la integridad de los datos y el diseño de sistemas escalables, me encantará conversar.