Barcelona · abierto a remoto 27 años en software · desde 1999 IA aplicada a producto y gestión

Nil Portugués Calderó · Líder de Ingeniería

Dirijo la ingeniería de sistemas críticos para el negocio.

Responsable de la ingeniería de una línea de negocio: dirección técnica, entrega, contratación y presupuesto, y desarrollo de los leads de mi equipo. Sistemas de los que dependen los ingresos: comercio y pagos, experimentación, búsqueda y plataformas de datos.

Línea de negocioingeniería de Paper de principio a fin, del roadmap a producción
Organizacióndos equipos formados desde cero, con planes de contratación ligados al roadmap
Leadsleads de frontend, backend y QA desarrollados dentro del equipo
Presupuestoestimado con dirección y gestionado en su ejecución

Experiencia

Experiencia destacada

De fundar mi primera web en 1999 a tech lead, CTO y engineering manager. El detalle completo está disponible en LinkedIn.

Trayectoria

Ingeniería Tech lead Dirección Proyectos de IA
The Knot Worldwide
Adsmurai
Trovit
Bandit
Proyectos de IA
20172019202120232025hoy
  • TK

    The Knot Worldwide

    jun 2021 — hoy · Remoto / Barcelona

    Senior Software Engineering Manager · Paper

    Responsable de ingeniería · Paper6 reports directos3 leads desarrolladosContratación y presupuesto

    Marketplace líder mundial del sector nupcial (The Knot, WeddingWire y Bodas.net), con más de 20 millones de visitantes mensuales.

    • Dirijo la ingeniería de Paper, una línea de negocio del segmento de ecommerce de The Knot Worldwide: priorización, dirección técnica y entrega de todas sus iniciativas, organizadas en fases según su impacto en la facturación y con entregas incrementales bajo feature flags.
    • Construí la organización desde cero: dos equipos, Node.js + React y PHP/Drupal, unificados en uno tras reciclar a los ingenieros PHP en React y Node. Planes de contratación ligados al roadmap de producto; presupuesto estimado con dirección y gestionado en su ejecución.
    • Desarrollé tres leads (frontend, backend y QA) mediante OKRs, evaluaciones de desempeño, revisiones salariales y planes de carrera.
    • Gestión de stakeholders y proveedores: reporting a dirección, proveedores externos y coordinación con el equipo de Data.
    Caso de estudioLa ingeniería detrás del crecimiento de PaperConstrucción de equipo · Comercio · Experimentación · Entrega bajo restricciones

    Reto

    Paper necesitaba abandonar su plataforma Drupal y crecer en el canal online, en una categoría considerada en declive, con foco en The Knot y WeddingWire en EE. UU.

    Qué lideré

    • Migración de Drupal a Next.js y TypeScript, primera aplicación multi-tenant compartida por The Knot y WeddingWire.
    • Rescate del checkout: el proyecto se transfirió a mi equipo en agosto de 2022, con 18 meses de retraso y sin checkout ni tracking de ecommerce. Desarrollamos ambos en tres meses y cumplimos la fecha de entrega de diciembre. Pagos con Stripe y, desde 2026, también con Klarna, incorporado a propuesta del equipo.
    • Programa de 8–10 experimentos anuales a lo largo del embudo de conversión, herramientas self-service de banners y textos para marketing, y automatización del feed de Google Ads mediante reglas.
    • QA automatizada con tests E2E desde el primer día del equipo, la primera del área de ecommerce, liderada por el QA del equipo, que evolucionó de associate a QA Lead.
    • Piloto europeo en Bodas.net, Mariages.net y Matrimonio.com: desarrollo externalizado, con la gestión de incidencias y del proveedor bajo mi responsabilidad hasta su cierre en mayo de 2025, que incluyó la retirada del código de los verticales europeos.

    Impacto

    • Crecimiento interanual de ingresos en una categoría considerada en declive.
    • El checkout continúa en producción y canaliza la totalidad de los ingresos online de Paper.
    • El enfoque de QA automatizada se adoptó en toda el área de ecommerce, más allá del equipo de Paper.
    Next.jsTypeScriptStripeKlarnaGraphQL
    Caso de estudioIntegrar la IA en el modelo de trabajo del equipo: de software engineers a product engineersCambio de cultura · Calidad · Productividad

    Reto

    Lograr que la IA transforme el funcionamiento de todo el equipo, más allá de la productividad individual.

    Qué lideré

    • Cambio de mentalidad del equipo, de software engineers a product engineers.
    • Elaboración de planes de iniciativa, épicas y story maps a partir de PRDs, y generación de reporting con IA.
    • Resolución de errores en el momento de su detección, con cobertura E2E ampliada mediante tests generados con IA.

    Impacto

    • Cumplimiento de todos los objetivos anuales de ingeniería y aumento del número de experimentos.
    • Eliminación de los errores recurrentes y de las alertas constantes, lo que hace que las guardias (on-call) sean previsibles.
    • Mejora de la calidad del código, avalada por Snyk y otras herramientas de análisis.
    Agentes de IATests E2ESnyk
  • AD

    Adsmurai

    abr 2019 — jun 2021 · Barcelona

    Senior Technical Team Lead · antes Senior Java Software Engineer

    Data GuildPlataforma de datos compartidaEquipo de cinco personas

    Marketing technology: automatización de paid media y optimización creativa.

    • Identifiqué que tres equipos duplicaban la misma ingesta de datos y propuse a la dirección un Data Guild compartido, cuya plataforma se convirtió en la base de Ads Composer.
    • Dirigí un equipo de cinco personas: contratación, OKRs, feedback y entrega.
    • Lideré la modernización de MediaPlanner y Ads Composer: migración de aplicaciones legacy de Vert.x y Tomcat a microservicios Spring Boot, con un refactor basado en SOLID y DDD.
    • Introduje Elasticsearch como motor central de búsqueda y analítica, junto con nuevas APIs de datos y la migración del front a React + TypeScript.
    Caso de estudioIdentificar la necesidad de un equipo de datos, crearlo y construir el data lakeInfluencia transversal · Capacidades compartidas · Plataforma de datos

    Reto

    Los datos de campañas de Facebook, Instagram, TikTok y Snapchat estaban dispersos, tres equipos reimplementaban de forma recurrente la misma ingesta y el equipo de Data existente, dedicado a computer vision para el etiquetado de feeds, operaba de forma aislada.

    Qué lideré

    • Promoví ante dirección la creación de un Data Guild: un equipo de cuatro personas que integró al equipo de Data existente.
    • Construí un data lake con Airflow y Snowflake que centralizó los datos de campaña de las cuatro plataformas. La elección de Snowflake correspondió a otros responsables; el diseño y la implementación de los pipelines, a mí.
    • Decidí migrar el proyecto UGC de Vert.x a Spring Boot por su simplicidad y mejor documentación.
    • Con un equipo de cinco personas y un modelo de trabajo propio de startup.

    Impacto

    • Tres equipos dejaron de duplicar la ingesta y pasaron a operar sobre una fuente única.
    • Base de Ads Composer, producto que ofrece métricas al cliente e identifica los segmentos óptimos de inversión.
    • Mayor velocidad y fiabilidad en la entrega de los proyectos de datos.
    AirflowSnowflakeSpring BootCassandraDruid
  • TR

    Trovit

    dic 2017 — abr 2019 · Barcelona

    Technical Team Lead · antes Senior Software Engineer

    Tracking crítico para facturación57 portales3 verticales

    Buscador global de anuncios clasificados que agrega miles de fuentes.

    • Responsable de la ingeniería de búsqueda y tracking, sistemas críticos de los que dependía el 50% de la facturación global de la compañía, en 57 portales de país y 3 verticales.
    • Dirigí el equipo: contratación, feedback y evaluaciones semestrales.
    Caso de estudioHacer predecibles los sistemas de los que dependía la facturaciónTracking crítico para facturación · Kafka · Emailing · APIs de búsqueda

    Reto

    El tracking constituía la base del modelo de facturación. Los eventos se generaban en PHP sin tipado estricto, cada mensaje a Kafka se tipaba manualmente y, por política corporativa, el consumidor Java no aplicaba validaciones. Los errores alcanzaban el dataset y obligaban a recalcularlo manualmente mediante scripts ad hoc.

    Qué lideré

    • Reconstruí la API de tracking y trasladé la validación al origen: una suite de integración en Java, incorporada al pipeline de despliegue, que ejecutaba el consumidor y simulaba cada mensaje del flujo (PHP, Kafka, Kafka Streams en Java y Scala, data lake) antes de su paso a producción.
    • Reconstruí el servicio corporativo de emailing, con un volumen medido de unos 100.000 envíos diarios: un sistema legacy sin capacidad de mantenimiento interna, con IPs en listas de spam y sin SLA definido. Establecí SLAs de velocidad de entrega y de uso de máquinas e IPs.
    • API de búsqueda para todos los verticales en 57 países, con un tráfico habitual medido de 30.000 peticiones por minuto. Establecí un objetivo de latencia inferior a 100 ms: endpoints en memoria con respuestas de ~1 ms, caché para el resto y monitorización en Grafana por endpoint y país.
    • Desacoplamiento de los frontales respecto al buscador legacy, con migración de PHP a Next.js e incorporación de tests de calidad y SEO donde no existían.

    Impacto

    • Eliminación de los recálculos manuales recurrentes de los datos de facturación.
    • IPs retiradas de las listas negras de spam y envíos dentro de SLA.
    • Trazabilidad de cada pico de tráfico por endpoint y país.
    PHPKafka StreamsJavaScalaGrafana
  • BA

    Bandit

    feb 2017 — dic 2017 · Barcelona

    CTO · antes Tech Lead Backend

    Startup HR-tech de captación de talento mediante gamificación.

    • Estrategia tecnológica, infraestructura y plan de resiliencia de backups.
    • Migración del CRM de Salesforce a SugarCRM para reducir costes. Gestión del cierre de la operación en España: despidos, documentación y transferencia tecnológica a las filiales de Latinoamérica.
    • Feedback técnico al equipo de sourcing y captación de talento.
  • BC

    Empresas tecnológicas en Barcelona

    2006 — 2016

    Desarrollador → Senior Engineer → Tech Lead

    ViajesMarketplacesInfraestructuraOpen source

    Los años en los que pasé de desarrollador a tech lead, en paralelo a la carrera y a la docencia universitaria.

    • letgo — Tech Lead, Marketing: construí desde cero los sistemas de automatización de marketing (notificaciones push y email) y su infraestructura en AWS.
    • Atrapalo.com — Technical Lead: lideré el desarrollo de la API de Vuelo + Hotel, con Arquitectura Hexagonal y DDD.
    • IDODI — Sistemas y backend: migré la infraestructura a AWS y configuré Varnish y la automatización de monitorización y backups.
    • T-Systems Iberia — Portfolio & Solution Design: apoyo al diseño de propuestas de solución para clientes y elaboración del reporting estadístico semanal del departamento.
    • Open source: publiqué librerías PHP para SQL y APIs conformes a estándares, con más de 1.300 estrellas en GitHub.
  • PS

    PokemonSafari.net

    abr 1999 — mar 2013

    Fundador y Lead Developer · adquirida por BlogOcio.net

    Donde empezó todoFundador únicoAdquirida en 2013Presencia en TV y prensa

    Mi primera web: un sitio de contenidos y comunidad online que fundé y dirigí en solitario durante 14 años.

    • Único responsable de todo el negocio durante 14 años: contenido, comunidad, desarrollo, infraestructura y operaciones, monetizado mediante publicidad.
    • Captó la atención de Nintendo y The Pokémon Company, y apareció en televisión y en revistas de la época.
    • Evolución de la arquitectura a medida que crecía el sitio: de Server Side Includes a PHP, un CMS propio en PHP y MySQL, caché con APC y Memcached, y sustitución de Apache por Nginx.
    • Negocié y cerré la venta del sitio a BlogOcio Media SL en marzo de 2013.
    • El proyecto con el que aprendí el stack LAMP y el inicio de mi carrera en software.

Experiencia completa en LinkedIn →

Cómo lidero

Ingeniería orientada a resultados de negocio

Cuatro principios con los que dirijo la ingeniería.

01 · PRIORIZACIÓN

Primero la facturación, con entregas incrementales

Divido cada iniciativa en fases y empiezo por lo que más impacto tiene en la facturación, con entregas pequeñas y continuas, bajo feature flags y medibles desde el primer día. Cuando el checkout llegó a mi equipo con 18 meses de retraso, priorizamos el checkout y el tracking de ecommerce, las dos piezas que Paper necesitaba para vender y para medir, y cumplimos la fecha de diciembre.

02 · OWNERSHIP

Equipos responsables del resultado

Asigno a los equipos problemas completos, no tareas aisladas, lo que les permite ir más allá del alcance inicial. Incorporar Klarna, por ejemplo, fue una iniciativa impulsada por el equipo: cuando demostró que era viable, se incorporó al roadmap.

03 · CRECIMIENTO

Desarrollo de personas y de futuros líderes

Expectativas claras y responsabilidad real desde el primer día. Tres personas de mi equipo han crecido hasta roles de lead. Al incorporar a nuestro QA, fijamos como objetivo la transición del testing manual al automatizado; hoy es QA Lead.

04 · DECISIONES

Decisiones técnicas al servicio del negocio

Priorizo los problemas con impacto económico y los resuelvo dentro de las restricciones existentes. En Trovit, la política corporativa impedía validar en el consumidor Java; trasladé la validación al pipeline de despliegue y se eliminaron las correcciones manuales recurrentes de facturación.

Práctica técnica

IA aplicada

Aplicada tanto a la dirección de equipos como al desarrollo de producto.

En la dirección de equipos

  • Planes de iniciativa, épicas y story maps a partir de PRDs.
  • Skills propias para revisión de boards, estrategia y salud de los equipos.
  • Cobertura de tests E2E escalada con generación asistida por IA.
  • Documentación técnica sincronizada con el código real.

En el desarrollo de producto

  • Sistemas RAG multinivel 100% locales sobre bibliotecas de vídeo.
  • Servidores MCP que conectan conocimiento propio con Claude o Cursor.
  • Desarrollo dirigido por agentes, con skills propias y un AGENTS.md por proyecto.
  • Automatización en Python sobre datos en tiempo real.
rag · local · llama.cpp
¿En qué vídeo explica cómo validar una idea antes de construirla?
▶Vídeo 12 · 04:31 ▶Vídeo 37 · 18:05
Pregunta lo que quieras…⏎

Proyecto destacado: chat con fuentes sobre bibliotecas de vídeo

RAG multinivel 100% local con interfaz conversacional, respuestas en streaming y servidor MCP. Ejemplo ilustrativo.

▶YouTube
≡Subtítulos
▦Chunks
⋯Embeddings
◉pgvector
⟁LangGraph
✦LLM local
✓Respuesta + citas

Lab

Proyectos personales

Proyectos propios, agrupados por tipo.

Videojuegos

Unity · C#
2

Beat 'em up

en desarrollo

Inspirado en los clásicos de 16 bits.

UnityC#ShaderLab

Run'n'gun cenital

en diseño

Para un jugador o cooperativo local.

UnityC#Game design

Apps móviles

React Native · Expo
1

App de frases diarias

prototipo

Onboarding, i18n, SQLite, notificaciones y widgets.

React NativeExpoSQLite

Aplicaciones

Web · IA · herramientas
3

Respuestas con fuentes y minuto exacto, 100% local y con servidor MCP.

FastAPILangGraphNext.js

Base SaaS multi-tenant

en curso

Refactor a React 19 y patrones de composición, con Prisma y React Router.

React 19PrismaTypeScript

Genera queries, mutations, subscriptions, fragments y tipos para cualquier esquema.

TypeScriptGraphQL

Open source

1300+

estrellas en GitHub en mis librerías PHP para construir SQL y generar APIs conformes a estándares (JSON API, HAL, Problem Details).

Ver todos los repositorios →

Stack

Tecnologías

Lenguajes

JavaPHPTypeScriptPythonNode.jsC#

Frameworks

Spring BootVert.xSymfonyReactNext.jsFastAPIDrupal

Búsqueda

ElasticsearchAlgoliaSphinxSolr

IA

LangGraphLangChainpgvectorllama.cppMCP

Datos

AirflowKafkaSparkDruidCassandra

Pagos y cloud

StripeKlarnaBigCommerceAWSGCPDocker

Formación

🎓
Ingeniería InformáticaLa Salle BCN · Universitat Ramon Llull. Proyecto final sobre optimización para buscadores, con matrícula de honor.2005 — 2013
📊
Programa de negocio · ThePowerMBAFormación online en administración y gestión de empresas (título propio, no oficial).2020 — 2021
🏆
Ganador · Startup Weekend BarcelonaGanador del concurso tras presentar el proyecto ante un panel de inversores: un evento de tipo hackathon para construirlo en 72 horas, de viernes a domingo.2016
🧑‍🏫
Profesor asistente · La Salle BCNSistemas UNIX y proyectos web.2010 — 2013

Idiomas

CatalánNativo
CastellanoNativo
InglésProfesional completo · Cambridge CAE
FrancésBásico · DELF A1

Contacto

Hablemos

Resido en Barcelona y estoy disponible para posiciones en remoto. Para roles de Director o Head of Engineering con responsabilidad sobre un producto o una línea de negocio, puede contactarme a través de LinkedIn.