Experiencia profesional

Sistemas distintos, la misma forma de trabajar

Mi experiencia combina backend, datos y sistemas distribuidos con una constante: construir soluciones que terminan usándose, operándose y evolucionando en producción.

ViveLibre

Ingeniero de Software Senior

Formo parte del equipo de análisis de datos durante el lanzamiento progresivo de un producto propio de teleasistencia. Trabajo sobre servicios, flujos y herramientas internas relacionadas con la información generada por dispositivos conectados.

  • Trabajo con propiedad end-to-end sobre los servicios en los que participo: diseño, desarrollo, pruebas, despliegue, mantenimiento, incidencias y evolución.
  • Desarrollé junto a un equipo herramientas internas para interactuar con dispositivos conectados mediante servicios en tiempo real e integraciones con otros sistemas.
  • Propuse la adopción de Grafana y construí dashboards sobre ClickHouse para sustituir y centralizar visualizaciones menos potentes y facilitar el análisis operativo de los datos.
  • Rediseñé por completo la interfaz interna de nuestra herramienta más utilizada con foco en mantenibilidad, componentes reutilizables y experiencia de uso.
  • Establecí la base inicial de testing con pytest en varios servicios, aplicando una estrategia incremental sobre el código nuevo o modificado.
  • Participo en decisiones técnicas, priorización, revisión de código, coordinación de entregas y conversación directa con stakeholders.
~90% cobertura en los repositorios críticos, partiendo de un código base sin pruebas
~70% reducción estimada del número de tareas manuales en flujos internos mediante automatización y nuevas herramientas
  • Python
  • Java
  • FastAPI
  • Dash
  • Kafka
  • Redis
  • MongoDB
  • MySQL
  • ClickHouse
  • Grafana
  • WebSockets
  • Kubernetes

BBVA Technology

Ingeniero de Software III

Contribuí al desarrollo y evolución de LRBA, un framework y ecosistema batch propio basado en Java y Apache Spark para ejecutar procesos configurables de lectura, transformación y escritura en un entorno bancario.

  • Diseñé y desarrollé conectores genéricos para leer y escribir ficheros binarios desde almacenamiento de objetos remoto sin depender de su formato.
  • Diseñé una capa de autenticación OAuth 2.0 configurable y extensible para conectores de APIs, con soporte inicial para client credentials y bearer tokens.
  • Trabajé en distintas áreas del framework y su ecosistema, dentro de una plataforma cuyo número de procesos gestionados crecía aproximadamente un 20% anual.
  • Asumí un papel de referencia dentro del equipo para la API Flask utilizada por otros servicios del banco para gestionar jobs y ejecuciones, además de otros desarrollos en Python.
  • Participé en guardias y soporte de producción: diagnóstico, ajustes de configuración, intervenciones urgentes en Kubernetes con ArgoCD y coordinación entre equipos.
~20% crecimiento anual del número de procesos gestionados
~50% reducción de la intervención manual en despliegues y gestión de entornos mediante automatización
  • Java
  • Apache Spark
  • Go
  • Flask
  • Django
  • MongoDB
  • Kubernetes
  • Helm
  • ArgoCD
  • Jenkins
  • REST
  • CI/CD

Acciona · Prime IT

Ingeniero de Software

Desarrollo y evolución de proyectos relacionados con visión artificial, edge computing, IA aplicada y procesos ETL.

  • Me responsabilicé del software completo de un dispositivo edge para analizar carreteras mediante segmentación semántica, detección y clasificación de grietas y procesamiento con OpenCV.
  • Investigué, parametricé e integré modelos desarrollados con TensorFlow y PyTorch para Raspberry Pi y NVIDIA Jetson Nano.
  • Participé en la creación de una web de onboarding accesible con un chatbot basado en GPT-4, limitado a un conjunto controlado de posibles preguntas.
  • Desarrollé procesos ETL en Python que extraían datos desde scraping, Excel, APIs y bases de datos para transformarlos y almacenarlos en PostgreSQL. A su vez, estos datos aprovisionaban dashboards de Grafana y se exponían mediante APIs REST.
  • Diseñé y desarrollé la arquitectura y el modelo de datos de un sistema en Django para orquestar registros documentales sobre distintas blockchains, con jobs configurables, ejecución periódica de transacciones, agrupación mediante árboles de Merkle para garantizar la trazabilidad de los documentos y monitorización asíncrona de su estado.
~4.25 FPS procesamiento por un Jetson Nano segmentando carreteras y clasificando grietas en tiempo real
10K+ transacciones blockchain programadas y monitorizadas en el primer trimestre de despliegue de la plataforma documental
  • Python
  • Java
  • TensorFlow
  • PyTorch
  • YOLO
  • OpenCV
  • PostgreSQL
  • Raspberry Pi
  • Jetson Nano
  • Angular
  • Django
  • Blockchain

Fever

Ingeniero de Software

Desarrollo de un backend de una plataforma de alto tráfico basado en un monolito principal y en varios microservicios periféricos, con contribuciones puntuales al frontend en Angular.

  • Diseñé e implementé el sistema de gestión de teléfonos de usuario: alta, eliminación, códigos de país, unicidad y verificación mediante OTP por SMS.
  • Desarrollé un sistema de gestión de usuarios y permisos para los distintos servicios internos basado en Django Admin.
  • Rediseñé el proceso de generación del sitemap para reducir el número de queries, cachear datos reutilizables y cubrir correctamente todas las variantes idiomáticas, reduciendo su tiempo de ejecución de ~60 s a ~10 s.
  • Extendí la capa de internacionalización de la aplicación para incorporar nuevos idiomas y garantizar su propagación consistente en contenidos, rutas y funcionalidades asociadas.
  • Trabajé con componentes asíncronos y orientados a eventos dentro de una plataforma con más de un millón de operaciones diarias de distintos tipos.
1M+ operaciones diarias en el conjunto de la plataforma corporativa
50K+ teléfonos de usuarios verificados gestionados por el sistema que desarrollé en la primera semana de despliegue
  • Python
  • Django
  • Flask
  • Angular
  • Kafka
  • RabbitMQ
  • Celery
  • Redis
  • PostgreSQL
  • Kubernetes
  • ArgoCD

Trantor MKT

Científico de Datos & Ingeniero de ML

Participé en la primera versión de un producto de IA de una startup, orientado al marketing y basado en personalidad, intereses implícitos y selección semántica de imágenes.

  • Preparé y validé datos procedentes de encuestas que combinaban resultados del modelo Big Five con preguntas de texto abierto sobre gustos personales.
  • Limpié variables procesadas y redundantes para mejorar la calidad del dataset utilizado durante el desarrollo y la validación.
  • Contribuí a un modelo de deep learning pensado para inferir intereses útiles en campañas, especialmente dentro del ecosistema de Facebook.
  • Desarrollé una aplicación que seleccionaba imágenes a partir de palabras y conceptos abstractos utilizando recursos semánticos como WordNet.
  • Participé en testing A/B comparando distintos modelos entre sí y entre prácticas de marketing tradicionales, con métricas de conversión y engagement como referencia para la evolución del producto.
~7% de incremento en el CR (Conversion Rate) de campañas A/B con los modelos de IA con mejor desempeño frente a prácticas tradicionales en experimentos de tamaño pequeño
  • Python
  • TensorFlow
  • Scikit-learn
  • Pandas
  • NumPy
  • WordNet

Tecnología en contexto

Herramientas, no un ranking

No utilizo porcentajes de dominio. Aquí recojo las tecnologías que más peso han tenido a lo largo de mi experiencia, sin pretender hacer una lista completa de todo lo que he utilizado.

Tecnologías principales

  • Python
  • Java
  • SQL
  • NoSQL
  • FastAPI / Django
  • Dash
  • NumPy / Pandas
  • Apache Spark
  • Kafka
  • Kubernetes
  • Redis
  • Sistemas distribuidos
  • Plataformas de datos
  • CI/CD
  • Angular
  • Android
  • WebSockets
  • MQTT
  • APIs REST
  • GraphQL
  • Grafana
  • AWS

Backend

Python · Java · FastAPI · Django · Flask · REST · GraphQL · Strawberry · WebSockets · gRPC

Datos y eventos

SQL · Apache Spark · Kafka · Kafka Streams · ClickHouse · MongoDB · PostgreSQL · Redis · Apache Airflow · NumPy / Pandas · MQTT

Plataforma

Kubernetes · Docker · ArgoCD · Jenkins · CI/CD · Grafana · AWS · Azure · Helm · Portainer

Producto e interfaces

Dash · Angular · JavaScript · Android · Astro · React · Jetpack Compose

Formación

La base académica; el punto de partida

La experiencia profesional ocupa hoy el centro de mi perfil, pero la formación sigue siendo una parte relevante del recorrido que me ha llevado hasta aquí y refleja también algunas de las inquietudes que han ido apareciendo por el camino.

2019 — 2023

Universidad del País Vasco · UPV/EHU

Grado en Ingeniería Informática · Mención en Computación

  • Mención internacional por cursar un porcentaje del grado en inglés.
  • Curso académico 2022/23 en Robert Gordon University (Escocia) mediante el programa Erasmus.
  • Reconocimiento universitario a la excelencia académica.
  • Clasificación para ICPC SWERC 2022.

Formación complementaria destacada

  • Argo CD Essential Guide for End Users with Practice — Udemy
  • gRPC [Java] Master Class: Build Modern API & Microservices — Udemy