Qapla'! — pero antes de hablar de ingeniería… café.
Después: criterio, sistemas y la obsesión por
años
cafés al día
salsas y bachatas bailadas
cores de cómputo en casa
Trayectoria Profesional y Fundamentos
La ingeniería de software, entendida con rigor, es la evolución natural de décadas aplicando criterio técnico en sectores críticos.
Mi trayectoria se ha forjado en la intersección entre la ingeniería de minas, los sistemas navales, centrales nucleares, incidencias aeronaúticas y la formación corporativa de alto nivel, priorizando siempre la estabilidad estructural y el criterio sobre las tendencias del mercado.
1978: Nacimiento
startProcedure( Ivan::Born );
El bucle de la historia
El contexto detrás del criterio
Nací en el 78, una gran generación. Fue justo después de que la Crisis del Software de finales de los 60 y principios de los 70 obligara a los grandes pensadores de la época —Myers, Constantine, Dijkstra, Parnas, Brooks…— a sentar las bases de nuestra disciplina, la ingeniería de software. Ellos no estaban allí para discutir el framework de moda, sino para evitar que los sistemas desarrollados hasta la fecha colapsaran bajo su propia complejidad.
Y es sorprendente cómo, a día de hoy, seguimos cometiendo exactamente los mismos errores que entonces. A cada nueva hornada de profesionales parece olvidársele que el software —y hoy más que nunca la infraestructura— no es un ente estático, sino un producto sujeto a cambio y mantenimiento constante. Siempre digo a mis alumnos que esta frase debería venir de serie: si quieres dedicarte a esto, tienes que asumirla desde el día uno. Ignorar esto fue la raíz de aquella crisis y es lo que hoy sigue devorando presupuestos y equipos que salen al mercado como si la historia no fuera con ellos. El resultado es predecible: sistemas que funcionan hoy, pero que son el lastre de mañana.
Lo advirtieron los grandes pensadores tras la crisis del software: el problema no era la falta de herramientas, tampoco la falta de talento; era la falta de principios para construir sistemas que soporten el cambio. Y ahí es donde pongo el foco.
1985-1990: Toma de contacto con el mundo IT
me.learn( [GWBasic, C, C++, MS-DOS] );
1996: Escuela de Ingenieros de Minas (UPM-Madrid)
me.asyncTeach( Java, HTML);
Ingeniería de Minas
El rigor de los siglos frente a los 60 años del software
Quizá por mis estudios de Ingeniería de Minas, tengo muy presentes ciertos conceptos. El primero de ellos es la definición de ingeniería: resolver un problema bajo restricciones de tiempo, dinero, recursos, seguridad y operación. En ingeniería, cumplir estas restricciones no es un "extra"; es parte integral de la solución.
Pero hay más cosas que en aquella época se integraron en mi ADN (mis primeros proyectos también ayudaron), como mi obsesión por la mantenibilidad. Una mina se diseña para operar durante décadas. La Ingeniería de Minas es una disciplina con 3 siglos de antigüedad, donde el conocimiento está muy asentado y la viabilidad a largo plazo es una condición física, no un concepto abstracto. Hay un rigor que viene de trabajar con horizontes largos y consecuencias reales que condiciona cómo piensas, y que se va transmitiendo generación tras generación.
La ingeniería de software apenas tiene 60 años; es una disciplina joven. Y aun así, vivimos en un mundo hiper-informatizado. Un mundo, eso sí, en el que la mantenibilidad parece una preocupación secundaria. Olvidamos continuamente que el software, como una mina, debe ser diseñado para lo que viene después de la inauguración.
1998: new Thread().run(Ivan::desarrolladorSenior)
me.save( Criticidad, Mantenimiento, LCC );
Fundamentos frente al ruido
El software se escribe para ser leído por humanos
Soy un entusiasta de los conceptos teóricos, quizás porque los estudié siendo muy pequeño. Nos ayudan a cumplir restricciones sin pagar el precio en mantenibilidad. Ya hubo gente hace muchas décadas que tuvo los mismos problemas, dedicó muchas horas a pensar en ello y llegó a soluciones y conclusiones que siguen siendo válidas hoy.
En entornos serios, esto se sabe desde hace décadas: el software se escribe una vez, pero se lee y se mantiene mil veces. Este principio, que ya estaba en las bases del lenguaje Ada hace más de 60 años, es una de mis reglas de oro.
Diseño sistemas pensando en el profesional que tendrá que operarlos y evolucionarlos dentro de tres años. Para lograrlo, pongo el foco donde de verdad se decide la supervivencia de un sistema, utilizando principios como SoC o DRY, o conceptos como cohesión y acoplamiento, o cualquiera de las decenas de pilares que hoy se ignoran en favor de debates estériles sobre herramientas. La herramienta cambia; el fundamento permanece.
2000-2015: Liderando equipos y sistemas críticos
PROJECTS = [ Sistema de control de Incidencias de la Central Nuclear de Cofrentes, Sistema de Publicaciones de Mantenimiento de la Armada Española, Sistema de Control de Configuración de Buques de la Armada Española, Sistema de Gestión de Documentación de Calidad de Red Eléctrica de España y de Iberdrola, Sistema de Control de Incidencias en Vuelos para Airbus, ... ]
Coste de ciclo de vida
Donde se decide la ingeniería
En el mundo nuclear no se diseña “para entregar”. Se diseña para vivir décadas con seguridad y eficiencia. Una central está pensada para operar durante mucho tiempo, y por eso la gestión del mantenimiento y del cambio no es un detalle: es el corazón del sistema. Ese fue el contexto de mis primeros años profesionales, y por eso estos conceptos los tengo grabados a fuego.
A principios de los 2000 diseñé el sistema de control de incidencias de la central nuclear de Cofrentes, que ha seguido operativo por más de 25 años. Cuando trabajas en ese nivel de horizonte temporal, aprendes una lección simple y brutal: el coste de construir es pequeño; el coste real de un sistema aparece en la operación, el mantenimiento y la evolución. A esto se le llama Coste de Ciclo de Vida (LCC).
Ese mismo concepto aparecía en la construcción naval. A finales de 1998 comencé a diseñar el sistema de publicaciones de mantenimiento de la Armada Española, proyecto en el que anduve involucrado por más de 8 años. Durante ese tiempo tuve la suerte de trabajar en muchos astilleros mientras diseñaban y construían nuestra hornada de Fragatas F-100 (a día de hoy siguen siendo puntales de la flota española). En ese entorno, el coste de ciclo de vida es una realidad palpable: el coste de construir un buque es solo una fracción del coste total que representa su operación y mantenimiento durante décadas.
Te aseguro que es impresionante ver realizar un overhaul a un submarino dentro de la Gran Carena —desmontar el submarino completamente, revisar cada componente, reparar o sustituir lo que sea necesario y volver a montarlo— y entender que el coste de ese proceso es lo que realmente define la viabilidad de la solución. Una solución definida más de una década atrás en el tiempo.
Lo mismo ocurre con el software: el coste de escribir código es solo la punta del iceberg; el verdadero coste se revela a medida que el sistema se opera, mantiene y evoluciona. Ojalá estuviera más de moda en el mundo IT formar a los profesionales en este concepto… Es algo que me digo cada vez que me llaman para impartir formaciones de LCC en el sector naval y militar.
Y ese es el enfoque que aplico hoy: no busco que el código “funcione ahora”. Busco que el coste de operarlo y mantenerlo dentro de los próximos cinco años no devore al equipo, al presupuesto y al producto.
Un sistema que no es mantenible no es una solución; es un pasivo, una hipoteca que se firma con cada línea de código, cada configuración, cada decisión de diseño.
Ese es el criterio con el que trabajo: el que separa el oficio de la improvisación.
2015 - Actualidad: Creando profesionales
Formador IT en 80+ empresas (España, USA) · Consultoría y auditoría técnica de alto impacto · Asesor en Tesis Doctorales
La brecha en el mundo Ops e Infraestructura
En un mundo donde la infraestructura se trata como Software...
El vacío de conocimiento es especialmente crítico —y peligroso— en el mundo de la operación, y especialmente en lo que conocemos como DevOps, donde se está operando con una falta de principios de ingeniería preocupante. Muchos perfiles en esta área no vienen del mundo del desarrollo y carecen de estos conceptos fundamentales de diseño.
Mucha gente llega a Ops/DevOps por caminos distintos al desarrollo, y por eso a veces no se transmite bien este cambio: hace años que ya no se trata de “administrar sistemas”, sino de automatizar esa administración; dicho de otra forma, crear programas que administren esos sistemas por ellos. Y si no se aplican los mismos principios de diseño, modularidad y calidad que en el desarrollo de software, el resultado será el mismo de siempre: sistemas cada vez más complejos, frágiles, con deuda técnica creciente y costes que se disparan.
Estamos igual que hace 70 años, pero en un mundo mucho más dependiente de la tecnología. Hoy la infraestructura es, a efectos prácticos, software.
IaC no es describir la infraestructura en un pseudoprograma usando un DSL de moda. Es tratar la infraestructura como software: versionado, revisión, pruebas, ciclo de vida y mantenimiento. Y, por supuesto, aplicando los mismos principios de diseño que aplicas al código.
2026: Lanzamiento de IOChannel
Aquí es donde me encuentro
Y aquí es donde continúo
Protocolos de Comunicación Soportados
[es_ES] = L1
Mi lengua materna. El protocolo base para transmitir décadas de criterio y fundamentos de ingeniería de software.
[en_EN] = C2
Fluent and professional. Fully operational for high-level technical training and international consulting deployments.
[fr_FR] = B2
Je me débrouille pour une conversation courante. Capacité de dialogue social, mais je réserve l'ingénierie complexe pour l’espagnol ou l’anglais.
[pt_PT] = A2
Nível de sobrevivência gastronómica. Sei o suficiente para garantir uma excelente refeição e não passar fome quando visito os nossos vizinhos.
tlhIngan Hol (Klingon)
Solo emergencias. Útil únicamente para maldecir código legado ineficiente o para negociar con arquitectos de software de dudosas intenciones: qaStaH nuq?
Home Lab Maker Spirit
Donde el criterio se prueba con metal.
No entiendo la ingeniería sin experimentar. La teoría me gusta, pero la valido rompiendo cosas en un entorno controlado: ahí es donde aprendes de verdad cómo respira un sistema bajo carga, qué se degrada primero y qué decisiones eran “bonitas” solo sobre el papel.
Me divierto jugando con mi propio Clúster de Kubernetes local, alta disponibilidad sobre 6 nodos Mac mini con almacenamiento dedicado. Es mi laboratorio para pruebas de concepto, despliegues controlados y análisis de rendimiento.
- CAPACIDAD: 40 Cores físicos y 96 Gbs de RAM operativa.
- PROPÓSITO: PoCs, laboratorios, validación de arquitectura y rendimiento.
- AUTONOMÍA: esta web se sirve desde aquí, junto con el resto de mis servicios.
No es solo hardware; es la libertad de aprender jugando con sistemas reales, con fricción real, sin abstracciones que escondan los límites.
Cómo trabajo
No es un “método” de consultoría. Es el proceso que utilizo para tomar decisiones bajo restricciones reales: tiempo, presupuesto, legado y producción.
CLARIDAD TÉCNICA
Lo difícil no es saber; es explicar para que otros puedan ejecutar.
- Trade-offs explícitos: Traduzco la complejidad en decisiones simples, analizando qué ganamos y qué sacrificamos en cada opción.
- Idioma común: Alineo a arquitectura, negocio y operación bajo el mismo glosario técnico para evitar silos.
- Registro de decisiones (ADR): Dejo por escrito no solo qué se decide, sino el porqué y qué coste operativo aceptamos.
Ejemplo: No debatimos sobre frameworks; debatimos sobre latencia, operabilidad y coste de cambio.
VISIÓN 360º
Veo el ciclo completo porque he operado en todas sus capas: desde el diseño hasta el mantenimiento.
-
Integridad del flujo: Conecto código, plataforma y datos. Las sorpresas suelen aparecer en las costuras entre capas.
-
Mantenibilidad (LCC): Evito el "ya funciona" que rompe la operación futura. Diseño pensando en el coste de ciclo de vida del sistema.
-
Dependencias invisibles: Identifico puntos únicos de fallo tanto en procesos como en herramientas y personas.
Ejemplo: Un fallo de datos suele ser un problema de contrato o de ownership, no solo una consulta SQL lenta.
DIAGNOSTICO Y CRITERIO
Primero identifico el origen del fallo; después propongo la arquitectura de solución.
-
Análisis binario: Separo el síntoma (latencia, costes cloud) de la causa raíz (deuda técnica, arquitectura frágil).
-
Impacto y Reversibilidad: Priorizo las intervenciones según cuánto nos duele el problema y qué facilidad tenemos para deshacer el cambio si es necesario.
-
Planes de acción, no informes: Entrego hojas de ruta ejecutables que el equipo puede iniciar mañana, no documentos decorativos
Ejemplo: Si el CI/CD es frágil, no meto más pasos: simplifico, mido y hago estable lo crítico.
ALINEACIÓN DE EQUIPOS
El estándar compartido vale más que el héroe. Mi éxito es convertirme en alguien prescindible para vuestro equipo.
-
Protocolos compartidos: Aterrizo acuerdos claros sobre Definition of Done (DoD), revisiones de código y despliegue.
-
Reducción de fricción: Menos artesanos individuales y más consistencia grupal a través de procesos repetibles y checklists.
-
Transferencia de oficio: Dejo el criterio instalado en el equipo para que puedan autogobernarse sin soporte externo.
La formación termina cuando el equipo puede mantener el estándar sin mí.
Hi-Fi para escuchar. Baile para vivir .
Fidelidad para el oído y síncopa para el cuerpo.
Escucho de todo: jazz, rock, electrónica o bandas sonoras. El género me da igual si es honesto y tiene alma. Mi pasión por el Hi-Fi no es por el objeto: es por la pureza. El detalle, el silencio exacto y una escena sonora real, sin interferencias.
Y luego está la otra parte: bailar. Principalmente latinos o africanos. Porque hay verdades que no se entienden leyendo; se entienden con el cuerpo.
Cuando la música entra de verdad, no hay manual que valga: la clave te pega en el corazón. El que ha pisado pista lo sabe. Esa es la única métrica que importa.
¿HABLAMOS?
Sin guion, sin compromiso y sin humo.
Si has llegado hasta aquí, es probable que tengamos algo en común. Ya sea para discutir una arquitectura compleja, organizar una formación para tu equipo, o simplemente compartir impresiones sobre música, baile o la vida en la trinchera técnica, mi puerta está abierta.
No hace falta que sea un proyecto cerrado. A veces, las mejores soluciones nacen de una charla sin más pretensión que intercambiar criterio.
- ¿Tienes un reto técnico que te quita el sueño?
- ¿Buscas elevar el nivel de ingeniería de tu equipo?
- ¿O quieres charlar sobre 84 cores y vinilos?
Escríbeme y buscamos un hueco para ese café.
Mensaje directo
* Si es algo sensible, lo hablamos con NDA antes de compartir detalles
Si lo prefieres, nos vemos en las redes.