Diseño sistemas que crecen con el equipo, no en su contra.
Investigo cómo diseñar software que evolucione con confianza.
Mentor de ingenieros listos para pensar más allá del código.
Los principios que guían mi forma de construir, liderar y pensar.
El mejor código no necesita un traductor. Es el que cualquier persona del equipo puede leer y modificar con confianza. La claridad reduce errores, acelera el desarrollo y hace que cambiar sea más fácil y seguro.
Los mejores ingenieros no solo resuelven problemas: rediseñan los sistemas para que esos problemas no vuelvan a aparecer. No se obsesionan con features aisladas, sino con el flujo completo y la sostenibilidad del sistema.
La mayoría de la "deuda técnica" es deuda de equipo: falta de acuerdos, malos hábitos o ownership difuso. Un equipo alineado mejora la base de código sin necesidad de héroes ni reescrituras completas.
El software real, en producción, es la única verdad útil. Prefiero entregar y aprender que planear indefinidamente. Los sistemas resilientes (y los equipos también) crecen con ciclos cortos y decisiones reversibles.
Cuando modificar el sistema da miedo, el problema no es el cambio: es el diseño. El buen software está construido para evolucionar, no para resistirse. El cambio no debería ser una amenaza, sino parte del día a día.
La mayoría de los problemas de software no son problemas técnicos, son problemas de procesos. Los equipos que luchan con código heredado generalmente luchan con prácticas heredadas.
He pasado una década construyendo sistemas que atienden a millones de usuarios diariamente. He visto lo que se rompe a escala, lo que mantiene a los equipos productivos y lo que separa los sistemas mantenibles de la deuda técnica.
Además, investigo activamente metodologías de desarrollo de software porque me obsesiona una pregunta: ¿qué hacen diferente los equipos que construyen buen software una y otra vez?
Liderando la arquitectura del software para el minorista más grande de España
Metodologías de Ingeniería de Software
Investigando cómo se construye y mantiene el gran software
Conferencias de Ingeniería de Software
Compartiendo conocimientos sobre diseño de software y liderazgo de equipos
Tres formas en que trabajo con ingenieros y equipos
Ayudo a los equipos a diseñar sistemas con límites claros y responsabilidades obvias. Una arquitectura que tiene sentido hoy y seguirá teniéndolo dentro de seis meses.
Construir equipos de ingeniería de alto rendimiento no se trata de contratar a las personas más inteligentes. Se trata de crear entornos donde las personas inteligentes puedan hacer su mejor trabajo.
He guiado a más de 100 ingenieros a través de transiciones de carrera: de junior a senior, de senior a staff y de contribuidor individual a líder técnico.
Guías, plantillas y checklists para acelerar tu crecimiento como ingeniero de software.
La guía de bolsillo para dejar de jugar a Jenga con tu código y empezar a construir fortalezas.
La guía visual y práctica para entender, identificar y gestionar la deuda técnica. Incluye cuadrantes, señales, estrategias y ventajas de pagarla.
Guía visual y práctica sobre Cohesión, Acoplamiento, Ocultamiento de Información y Sistema Obvio. Incluye checklist, principios y consejos para un diseño mantenible y escalable.
Los 9 principios para escribir mejor código orientado a objetos. Incluye ejemplos, propósito y cómo aplicarlos en tu día a día.
He sido speaker en estas conferencias
En este vídeo exploramos a fondo la arquitectura hexagonal, también conocida como puertos y adaptadores.
“Diseñar bien no es prever todos los cambios, sino facilitar el próximo. Esa es la verdadera arquitectura.”— De mi perfil en LinkedIn