Software, automatización, IoT e ingeniería. Ingeniero mecánico en formación y desarrollador full stack — del problema a un sistema funcionando en producción.
# from ideas to systems async def build(problem): system = design(problem) await automate(system) return system.impact
Lo interesante no es solamente construir algo. Es entender el problema, encontrar la estructura correcta y convertirla en algo que realmente funcione.
Estudio ingeniería mecánica y escribo software. Esa combinación no es casualidad: las dos disciplinas hacen la misma pregunta — cómo funciona esto y qué se rompe primero. Por eso mis proyectos suelen cruzar la línea entre lo físico y lo digital.
Un proceso manual que consume tiempo y esconde la información que alguien necesita para decidir. Antes de escribir una línea quiero saber qué está costando.
Recorro el proceso con quien lo vive: qué datos existen ya, quién aprueba qué, dónde se rompe. La mayor parte del diseño real ocurre en esa conversación.
Arquitectura antes de código: esquema de datos, contrato de API, roles y permisos, diagramas. En la plataforma de Cenit eso significó flujos de aprobación multinivel y trazabilidad documental, definidos antes de desarrollar.
FastAPI y PostgreSQL en el backend, React en el frontend, y hardware cuando el problema vive en el mundo físico — un módulo de asistencia con ESP32 enviando datos en tiempo real a la misma API.
Lo que se repite se convierte en un flujo, una alerta, un registro. Para el equipo de Dirección Comercial de Google eso fue lógica que marca negocios cerrados sin consumo de cloud iniciado — un seguimiento manual reemplazado por avisos automáticos.
Documentación técnica, diagramas de arquitectura, especificaciones de API, pruebas de integración y revisiones por sprint. Un sistema está terminado cuando sigue funcionando sin mí en la sala.
Cada uno empieza con un proceso que le costaba tiempo a alguien. Sigue el problema, la decisión de ingeniería, el sistema que salió de ahí y el resultado — sin números inventados.
Procesos de gestión de cambio y consultas técnicas manejados sin trazabilidad — aprobaciones dispersas y sin forma de saber en tiempo real en qué punto iba cada solicitud.
Diseñar flujos de aprobación multinivel con trazabilidad documental completa, y autenticar a cada usuario con su cuenta corporativa en lugar de un login aparte.
SSO con Microsoft Entra ID sobre OAuth 2.0/OIDC, flujos de aprobación con historial documental, y migración completa de la base de datos del sistema legado al nuevo esquema preservando integridad e historial de auditoría.
Seguimiento de procesos empresariales en tiempo real, más la documentación técnica para sostenerlo: diagramas de arquitectura, especificaciones de API y guías de despliegue, entregado bajo Agile/Scrum con revisiones por sprint y pruebas de integración.
El seguimiento comercial era completamente manual. Un negocio podía cerrarse en papel sin que nunca iniciara el consumo de cloud — ingresos proyectados en riesgo, invisibles hasta que alguien revisaba a mano.
Separar las dos mitades del problema: una interfaz de captura que el equipo comercial realmente use, y una capa de automatización que vigile los datos y decida cuándo algo merece atención.
Un sistema de seguimiento comercial de extremo a extremo: AppSheet como interfaz de captura, Google Apps Script como lógica de automatización y motor de alertas, con reglas que marcan negocios cerrados sin consumo efectivo de cloud iniciado.
Un proceso de seguimiento completamente manual eliminado. El director comercial recibe visibilidad inmediata y automática de las cuentas que requieren acción prioritaria para asegurar la facturación.
Una empresa de manufactura sin infraestructura digital: sin sitio web, sin sistema de inventario, sin forma de saber qué había en stock ni quién estaba en planta.
Una sola arquitectura en lugar de cuatro herramientas desconectadas: una API REST, una base de datos, un modelo de autenticación — y el mundo físico reportando al mismo backend que la aplicación web. Como único ingeniero, eso también significó corregir lo que no escalaba: reescribir el acceso a datos de una pantalla crítica eliminó cerca de 500 consultas SQL redundantes y las dejó en 1, y el pooling de conexiones tuvo que rediseñarse para soportar carga concurrente de varios usuarios.
Sitio corporativo en React 18/TypeScript (TanStack Query, Zustand, TailwindCSS) con backend FastAPI bajo Clean Architecture — SQLAlchemy 2.0, Pydantic v2, corriendo con 4 workers de Uvicorn. Un ERP a medida que cubre ventas, inventario, remisiones, planeación de producción y RRHH: autorización de doble capa (RBAC en la API más Row Level Security en cada tabla de PostgreSQL), 32 migraciones versionadas y 72 pruebas con Pytest que cubren las reglas de negocio y toda la matriz de roles y permisos. Un ESP32 con sensor de huella AS608 y pantalla táctil ILI9341 — firmware en C++ reportando asistencia en tiempo real a la misma API.
Todo funcionando en producción en la planta de la empresa, a lo largo de cuatro años de trabajo continuo, como su único ingeniero — el sistema que más tiempo he construido y mantenido.
Dos proyectos del diplomado en Machine Learning & Data Science. Ninguno es un producto — los dos son cómo aprendí a tratar los datos como evidencia y no como decoración.
Analicé patrones en datasets oficiales del DANE con pandas, matplotlib y seaborn — limpieza de datos, análisis estadístico y visualización para identificar grupos demográficos en riesgo y correlaciones geográficas.
Construí un modelo de ML aplicando NLP a reseñas de Amazon para clasificación y recomendación de libros, alcanzando precisión por encima de la línea base con algoritmos de clasificación supervisada.
La ingeniería mecánica me enseñó algo que el software no: un sistema tiene que sostenerse en el mundo físico, donde nada se deshace y las tolerancias no son opiniones.
Cientos de subsistemas que solo funcionan cuando se ponen de acuerdo: transmisión, refrigeración, control, sensores. Es lo mismo que busco en software — interfaces claras, una sola fuente de verdad, fallas visibles antes de ser costosas. En los autos esa idea se me volvió intuitiva.
Me gusta entender por qué algo se comporta como se comporta antes de decidir qué hacer al respecto. Eso me dio el diplomado en Machine Learning & Data Science: estadística, limpieza, visualización — y la disciplina de no concluir más de lo que los datos sostienen.
El módulo de asistencia en Colombiana de Válvulas es la versión más corta de lo que hago: algo pasa en la planta y segundos después es un registro sobre el que alguien puede actuar.
Esa línea es la razón por la que el IoT no me parece una disciplina aparte: un tablero de relés de 1990 y un ESP32 responden la misma pregunta, solo que uno de los dos puede contarte qué hizo.
Construir cosas siempre me ha interesado. Estoy en el último año de Ingeniería Mecánica en la Universidad Nacional de Colombia y en el camino terminé escribiendo software — primero porque una empresa lo necesitaba, después porque no pude parar.
Tres años después he construido un ERP completo como su único ingeniero, una plataforma empresarial con SSO corporativo, un sistema de automatización para un equipo comercial y un módulo de hardware reportando desde una planta. Problemas distintos, el mismo método.
Lo que me gusta es el momento en que un sistema empieza a funcionar sin que nadie lo empuje. Todo lo anterior — los diagramas, las migraciones, las pruebas — es la parte que disfruto igual.
Sistema de seguimiento comercial de extremo a extremo en AppSheet y Google Apps Script, con lógica de riesgo que marca negocios cerrados sin consumo de cloud iniciado.
Plataforma empresarial para gestión de MOC y consultas técnicas: flujos de aprobación multinivel, trazabilidad documental, SSO con Microsoft Entra ID sobre OAuth 2.0/OIDC y la migración de la base de datos legada.
192 horas, nota 5.0 / 5.0 — Python, scikit-learn, NLP.
Cuatro años como único ingeniero de toda la infraestructura digital de la empresa: sitio corporativo en React 18/TypeScript con backend FastAPI bajo Clean Architecture, un ERP a medida construido desde cero (ventas, inventario, remisiones, planeación de producción, RRHH), PostgreSQL en Supabase con 32 migraciones versionadas y Row Level Security, 72 pruebas con Pytest, y un módulo de asistencia con ESP32 y biometría en producción.
9°/10° semestre. De donde viene la forma de pensar en sistemas de todo lo anterior.
No es un muro de logos — son las capas de un sistema, en el orden en que suelo construirlas.
Cuéntame qué quieres construir. Si involucra sistemas, automatización o hardware, mejor.
HABLEMOS →