0 años, 0 meses, 0 días programando
Currículum Vitae
Senior Backend Developer especializado en PHP/Symfony y automatización E2E con Playwright, aplicando arquitectura hexagonal, DDD, TDD y desarrollo asistido por IA.
📄 CV Completo
Consulta mi CV actualizado con toda la información detallada sobre experiencia, proyectos y habilidades técnicas.
Stack Técnico
Specification Driven Development: metodología que formaliza el proceso de desarrollo partiendo siempre de un documento de especificación estructurado — requisitos, diseño y tareas — antes de escribir una sola línea de código. Cada aventura nace con tres documentos en docs/: requirements.md (MUST/SHOULD/UNWANTED), design.md (arquitectura y ADR-lite) y tasks.md (desglose con dependencias).
TLOTP es el prompt de autoasistencia que uso con Claude Code para generar SDDs correctos a partir de contexto conversacional — garantizando consistencia entre requisitos, diseño e implementación. Puedes explorar los SDDs completados de este mismo portfolio en el repositorio público.
Mi lenguaje desde el primer día como profesional. Empecé evolucionando el backoffice de AdjudicacionesTIC, y con los años dirigí el desarrollo de sus apps desde cero: diseñando e implementando la API REST con Laravel y orquestando al equipo de desarrollo móvil.
He liderado proyectos con CakePHP, Laravel y otros frameworks a lo largo de mi carrera, aunque hoy mi día a día gira en torno a Symfony — el framework que más me ha hecho crecer como desarrollador y con el que me siento más cómodo.
Llegué a Symfony en El Confidencial y desde entonces no he mirado atrás — para mí es el mejor framework PHP. Fue el salto que me introdujo de lleno en DDD, arquitectura hexagonal, PHPStan, PHPUnit y microservicios. He participado en productos de alto impacto como el embalsómetro, la plataforma de directos, nuevos tipos de editoriales y los widgets electorales supervisados en tiempo real durante las elecciones. También en la evolución de un CMS legacy hacia una arquitectura moderna, migrando funcionalidades antiguas e incorporando nuevos evolutivos de forma continua.
Mi herramienta de referencia para testing E2E. Implemento suites con Page Object Model estricto, visual regression y CI/CD. Como Tech Lead de Playwright en El Confidencial oriento a compañeros para que cada desarrollador sea su propio QA — y llevo casi tres años liderando las validaciones de release semanales. Hito que más me enorgullece: PPIA, un agente TypeScript capaz de generar tests E2E funcionales a partir de lenguaje Gherkin, eliminando la barrera técnica entre negocio y testing.
Domain-Driven Design: desarrollar software modelando el dominio del negocio como eje central, no la tecnología. Desde que llegué a El Confidencial y adopté su forma de trabajar he interiorizado que DDD es fundamental para construir aplicaciones escalables y mantenibles. Entidades, Value Objects, Repositorios y Servicios de aplicación con fronteras claras entre capas. Este portfolio público da fe de ello: arquitectura hexagonal con Domain, Application e Infrastructure bien separadas, aplicando estos principios desde el primer commit.
Desde que ChatGPT irrumpió hace dos años, fui de los primeros en adoptarlo y uno de sus mayores defensores dentro de El Confidencial — incluso tuve la oportunidad de presentar a mis compañeros cómo usarlo para trabajar de forma más eficiente. Hoy integro IA en todo mi flujo de trabajo: Claude como copiloto para diseño de arquitecturas, revisión de código y resolución de problemas complejos. El hito que más me enorgullece es haber desarrollado una herramienta propia que combina MCP y OpenAI GPT-4 para generar tests E2E en Playwright a partir de lenguaje Gherkin, permitiendo que los propios Product Owners los programen sin barreras técnicas. Y en mi tiempo libre me atrapa por completo, permitiéndome evolucionar proyectos personales como este portfolio, entre otros.
Mi rol transversal en todos los equipos en los que he trabajado. Más allá de escribir tests, me encargo de diseñar la estrategia de calidad: qué se prueba, cómo, cuándo y en qué entorno. Inicié este rol en Madrija con Selenium y Cucumber, y hoy lo fomento en El Confidencial con Playwright y TypeScript — aunque Cucumber sigue pendiente de migrar. He implantado pipelines de QA automatizado en CI/CD, definido protocolos de release y formado a desarrolladores para que la calidad sea responsabilidad de todo el equipo, no solo del QA.
Desde que llegué a El Confidencial y empecé a trabajar con Symfony he perseguido la máxima calidad del software que genero. He aprendido a fondo PHPUnit: qué son los mutantes y cómo matarlos, la diferencia entre caja negra y caja blanca, y cómo interpretar la cobertura total de líneas para que sea un indicador real y no solo un número. En este portfolio — del que mantengo una réplica pública con los tests — intento demostrar estas capacidades aplicando TDD desde el primer día.
Uso SQL a diario en entornos de producción de alto tráfico. Diseño de esquemas, optimización de queries, índices y análisis de planes de ejecución. Experiencia con MySQL y PostgreSQL, tanto en proyectos propios como en sistemas complejos de medios de comunicación. Como Tech Lead QA también he trabajado generando seeders y migrations para ejecutar tests E2E en entornos efímeros: en Madrija teníamos un sistema consolidado que evolucionaba según los tests y los evolutivos, y hoy en El Confidencial estamos desarrollando esa base inicial para ejecutar E2E desde una BD que se restaura en cada ejecución. Dicho esto, hoy me resultan más atractivos otros paradigmas como Couchbase o las bases de datos vectoriales — el mundo de la IA me entusiasma y ahí es donde veo el futuro.
Programar en estado de flujo total con IA como copiloto. No se trata solo de autocompletar código — es una nueva forma de trabajar donde describes la intención y la IA propone, tú revisas, corriges y evolucionas. Desde que lo incorporé a mi día a día mi velocidad de desarrollo se ha multiplicado sin sacrificar calidad. Cada día aprendo algo nuevo y hoy intento exprimir al máximo mi suscripción a Claude Max con Claude Code. Este portfolio entero es un ejemplo de Vibe Coding en acción.
Base de datos NoSQL orientada a documentos con la que trabajo a diario en El Confidencial. Gestión de grandes volúmenes de contenido editorial, diseño de buckets y colecciones, queries con N1QL y optimización de índices. Un paradigma que encaja perfectamente con la naturaleza dinámica del contenido periodístico. Trabajar con Couchbase también me ayudó a interiorizar conceptos no tan triviales como la cadena de responsabilidad o la inyección de servicios de Symfony, aplicándolos para gestionar la transformación y el enrutado de documentos.
Lo adopté para escribir tests E2E con Playwright y hoy es mi lenguaje para todo lo que toca el lado del testing y automatización. El tipado estricto me da la misma seguridad que PHPStan en PHP: detectar errores antes de ejecutar. Toda la suite E2E de este portfolio y PPIA están escritos en TypeScript.
Análisis estático como primera línea de defensa antes de que el código llegue a revisión. PHPStan nivel 9 en todos mis proyectos Symfony: tipos estrictos, sin mixed tolerado, inferencia completa. SonarQube para detectar code smells, duplicidades y deuda técnica. En El Confidencial forma parte del pipeline de CI/CD bloqueante en cada PR. En este portfolio público tengo PHPStan al máximo nivel pero aún me falta integrar Sonar — ando corrigiendo y evolucionando otras cosas y no es de mis prioridades ahora mismo.
Test-Driven Development: escribir el test antes que el código. Una práctica que cambia por completo cómo diseñas el software — te obliga a pensar en la interfaz antes que en la implementación, y el resultado es código más limpio, más desacoplado y con una cobertura real desde el primer día. Hoy lo aplico de forma estricta en este portfolio siguiendo las tres fases: rojo — escribir el test que falla, verde — implementar el mínimo código para que pase, refactor — mejorar sin romper nada.
Skills Deseadas
Tecnologías y herramientas que estoy aprendiendo o quiero incorporar a mi stack
Conozco su funcionamiento y lo que organiza pero no he trabajado con ello. Sí experiencia amplia con Jira
Me apasiona por su uso en IAs: permite crear aplicativos con sesiones vs chats directos. Desarrollando proyectos personales, aprendiendo cada día
Mi desconocimiento de Cucumber con Playwright junto a mi conocimiento de Cucumber con Selenium me ayudaron a construir en Python el POM-PPIA y generar un Cucumber correcto. Aún me falta incorporar Cucumber en mi práctica del día a día
Cómo está hecho el CV en PDF
Este currículum está desarrollado en HTML + CSS sin ninguna tecnología adicional, lo que lo hace extremadamente fácil de editar y exportar a otros formatos como PDF.
Próximamente: herramienta para crear tu propio CV personalizado con estos diseños