David Ruiz Urraca profile picture
Disponible para trabajo en remoto

DAVID RUIZ URRACA

Ingeniero Móvil Senior / Android Developer|

Con más de 10 años de experiencia creando aplicaciones de producción a gran escala, me especializo en diseñar arquitecturas nativas robustas para Android, desarrollar apps multiplataforma fluidas con Flutter y Kotlin Multiplatform (KMP) y liderar la integración de IA agentiva en mi flujo de trabajo diario.

Perfil Profesional

Ingeniero Móvil Senior orientado a producto, con más de 10 años de experiencia creando aplicaciones Android de producción a gran escala, con una sólida trayectoria multiplataforma en Flutter y adopción activa de Kotlin Multiplatform (KMP).

Actualmente, soy el Technical Lead y único desarrollador de Explora Prado (Flutter), una aplicación para el Museo del Prado — un proyecto reconocido con una Mención de Honor Art-Tech 2025 y seleccionado para el programa Santander X Explorer 2026.

Previamente, lideré de extremo a extremo el SDK interno de Ads para Android en OLX Group, gestionando la estrategia de versiones, retrocompatibilidad, flujos de consentimiento GDPR y ergonomía de integración para equipos colaboradores en las tres verticales de consumo de OLX (Horizontals, Real Estate y Motors), cada una con compilaciones específicas por mercado, con decenas de millones de usuarios activos.

Defiendo el uso de TDD (Desarrollo Guiado por Pruebas) y flujos de trabajo con IA generativa/agentiva como prácticas de ingeniería clave, aprovechando herramientas como Claude Code, Cursor, Codex y Ollama junto con paquetes de habilidades personalizados, bucles de comandos integrados en terminal, ciclos automáticos de prueba-depuración y patrones estructurados de AGENTS.md / DESIGN.md para que el desarrollo asistido por IA sea rápido, reproducible y listo para el trabajo en equipo.

En proyectos personales también trabajo de forma práctica con integraciones de salud e IA en el dispositivo — desarrollando con la Health Connect API y AICore de Android (Gemini Nano on-device), además de TTS y STT on-device, para funcionalidades privadas y locales. Actualmente desarrollo una app personal de salud para Android que lee datos de Health Connect para generar métricas de salud personales y combina IA on-device con IA en la nube para ayudar a los usuarios a entender y mejorar su salud. En paralelo, desarrollo una app en Kotlin Multiplatform para un negocio real de hotel canino — compartiendo la capa de dominio (y probablemente de datos) entre apps nativas de Android (Jetpack Compose) e iOS (SwiftUI) — con reconocimiento de mascotas por IA previsto en el roadmap.

Foco Actual (Ahora)

Foco Activo

Esto es en lo que estoy enfocado ahora mismo, a mediados de 2026:

  • Explora Prado: Ya publicada en App Store y Google Play, y en desarrollo activo. Desarrollando nuevas funcionalidades, escalando y refactorizando la plataforma técnica de esta reconocida app en Flutter, optimizando pagos integrados en tiendas y dirigiendo toda la hoja de ruta técnica tras el lanzamiento.
  • Multiplataforma (KMP y Flutter): Avanzando en Compose Multiplatform, código compartido cliente-servidor y arquitecturas Flutter escalables para maximizar la reutilización.
  • React Native (JS/TS): Construyendo conocimiento práctico de React Native con JavaScript y TypeScript. No está al nivel de Kotlin o Dart, pero unido a mi experiencia en arquitectura de apps y a un flujo de trabajo asistido por IA, es suficiente para afrontar proyectos React Native y ser productivo en ellos con rapidez.
  • Flujos guiados por IA: Integrando de forma continua bucles agentivos (Claude Code), servidores MCP (Model Context Protocol) personalizados y ciclos de prueba integrados en terminal en mi desarrollo móvil diario.

Experiencia Profesional

Jan 2026 – Present

Technical Lead (Freelance)

Explora Prado España (Remoto)

Reconocida app en Flutter que transforma la colección permanente del Museo del Prado en una experiencia digital autoguiada — recibió la Mención de Honor Art-Tech 2025 y fue seleccionada para el programa Santander X Explorer 2026.

  • Único propietario de la plataforma técnica completa: arquitectura, implementación, pipeline de publicación y las versiones publicadas en App Store y Google Play.
  • Desarrollo integral de la app en Flutter/Dart para Android e iOS usando Arquitectura Limpia + BLoC y un modelo de datos por capas (DTO / Entidad / Modelo) respaldado por Firebase (Firestore, Storage, Authentication, Analytics, Crashlytics).
  • Implementación de la capa de compras integradas en ambas tiendas (in_app_purchase) — flujo de verificación y persistencia de derechos, una integración nativa compleja en Android e iOS, con la configuración de productos activa en ambas tiendas.
  • Desarrollo de soporte multiidioma dinámico (español e inglés disponibles, con italiano, francés y portugués planificados) e interfaz adaptativa para una experiencia de museo rica en contenido, utilizando assets SVG y tipografía personalizada. Además, desarrollo del back-office interno de administración de contenidos en Flutter Web, una herramienta de uso exclusivamente interno sin acceso para usuarios finales.
  • Desarrollo de características clave (sistema de trivia interactivo, guías multimedia y flujos de pago) aplicando TDD para garantizar sincronización robusta offline y estabilidad.
  • Escalabilidad del rendimiento como desarrollador único mediante un flujo IA-first usando Claude Code y Cursor junto con paquetes de habilidades personalizados, bucles de comandos y patrones estructurados de AGENTS.md / DESIGN.md.
Flutter Dart BLoC Firebase Firestore In-App Purchases Clean Architecture TDD A/B Testing AI Engineering
Jul 2021 – Jan 2026

Senior Android Engineer

OLX / Letgo Barcelona (Remoto)

Desarrollo Android para un marketplace líder global con operaciones en Polonia, Portugal, Turquía, Ucrania, Rumanía, India, Indonesia, Sudamérica y otros mercados.

  • Líder técnico y arquitecto del SDK interno de Ads para Android que impulsa la monetización en las tres verticales de consumo de OLX (Horizontals, Real Estate y Motors), cada una con compilaciones específicas por mercado, sirviendo a decenas de millones de usuarios — integrando la demanda publicitaria principalmente a través de Google Ad Manager junto con SDKs adicionales de ad-networks de terceros.
  • Diseño del patrón de separación de módulos api/impl para delimitar dependencias, lo que optimizó tiempos de compilación e integraciones más seguras y predecibles; estandaricé el build con convention plugins de Gradle, version catalogs y composite builds.
  • Liderazgo en decisiones de privacidad en el SDK: gestión de estados de consentimiento (IAB TCF, Google UMP), seguimiento delimitado y cumplimiento con GDPR y Android Privacy Sandbox.
  • Migración de vistas clave del SDK de XML a Jetpack Compose y de asincronía basada en callbacks a Kotlin Coroutines y Flow, garantizando retrocompatibilidad.
  • Uso de TDD con JUnit y MockK para el diseño de las APIs del SDK, garantizando cero regresiones en las aplicaciones integradoras — elevé la cobertura de tests del SDK del 14% al 70%.
  • Gestión completa del ciclo de vida del SDK: estrategia de versionado, empaquetado AAR y publicación con Maven Publish en Artifactory y Maven Central, documentación de integración y mentoría a otros equipos en patrones de consumo.
  • Contribuciones en código de características en las aplicaciones consumidoras, reforzando la integración del SDK desde la perspectiva del cliente.
  • Colaboración estrecha con equipos internacionales en las oficinas de OLX en Estambul, Nueva Delhi, Poznań y Lisboa — coordinando integración y entregas entre husos horarios y mercados.
  • Coordinación con el equipo de iOS SDK para sincronizar diseños de API, esquemas de telemetría y ciclos de lanzamiento, unificando estándares de integración.
  • Integración de APIs basadas en GraphQL para la obtención de datos en el trabajo de características de las apps de consumo.
  • Aquí escribí mi primer código en Flutter, desarrollando características multiplataforma junto al trabajo nativo en Android — base que más tarde profundicé en Explora Prado.
  • Integración de analíticas y seguimiento: Amplitude, CleverTap, Google Analytics, Crashlytics.
Android SDK Kotlin Jetpack Compose Coroutines & Flow GraphQL Flutter TDD API Design Privacy Sandbox GDPR Analytics A/B Testing Baseline Profiles
Sep 2019 – Jul 2021

Desarrollador Android Senior

Wegow Madrid (Remoto)

Plataforma de descubrimiento de eventos de música en directo y venta de entradas. Entré como único desarrollador Android de la empresa y asumí la app de extremo a extremo: arquitectura, entregas y estabilidad en producción sobre una base de dispositivos heterogénea.

  • Heredé una base de código legacy en Java con librerías obsoletas (Dagger 1); la estabilicé y entregué nuevas funcionalidades durante una fase inicial de soporte.
  • Lideré y construí una reescritura desde cero ("v2") en Kotlin con Dagger 2 sobre MVVM / Arquitectura Limpia, reemplazando la app legacy de Java/Dagger 1 — una base que sigue sustentando el producto de la empresa hoy, 6 años después de mi salida.
  • Desarrollo con Room, LiveData, ViewModels y Coroutines, con Glide para la carga de imágenes y Firebase para notificaciones push, analítica y Crashlytics.
  • Integración de las pasarelas de pago Stripe y Redsys para la compra de entradas y del Google Maps SDK para el descubrimiento de eventos y la geolocalización de recintos.
  • Adopción de TDD como práctica central para garantizar alta fiabilidad y un código libre de regresiones durante la reescritura.
  • Coordinación directa con el desarrollador de iOS para alinear contratos de API, analíticas y lanzamientos, unificando el comportamiento del producto en ambas plataformas.
Kotlin MVVM Dagger 2 Room Stripe Redsys Google Maps Clean Architecture TDD A/B Testing
Jul 2018 – Sep 2019

Desarrollador Android

Instantgo Madrid (Remoto)

Marketplace de servicios bajo demanda donde profesionales independientes ofrecían sesiones de pago por tarifa horaria — la mayoría online mediante videollamada 1:1, con soporte también para servicios presenciales. Base de usuarios concentrada en California, disponible en numerosos países.

  • Creé la app de Android desde cero y la llevé a paridad de funcionalidades con la app de iOS existente.
  • Integré las videollamadas 1:1 de pago con Twilio, gestionando el ciclo de vida de la sesión y la conexión.
  • Implementé el flujo de pago in-app con Stripe para la reserva de sesiones de pago.
  • Integré el ecosistema Firebase (Authentication, push, analítica, Crashlytics, Realtime Database, Storage, Cloud Functions y App Distribution para la distribución de builds) con Dagger 2 para la inyección de dependencias.
  • Único desarrollador Android: construí la app desde cero con plena autonomía técnica en un entorno de startup ágil, usando Kotlin + MVVM / Arquitectura Limpia con Retrofit, Room, LiveData y Glide.
Kotlin MVVM Clean Architecture Dagger 2 Firebase Twilio Stripe Retrofit Room A/B Testing
Mar 2018 – Jul 2018

Desarrollador Android

Telefónica Madrid

Desarrollo en Android TV para Movistar TV, la plataforma de IPTV / streaming de Telefónica.

  • Desarrollé funcionalidades para Movistar TV en Android TV con navegación D-pad y componentes de UI Leanback.
  • Trabajé con ExoPlayer para la reproducción de vídeo e integré componentes JavaScript personalizados en la superficie de Android TV.
  • Trabajé en un equipo Scrum aplicando MVP y Kotlin dentro del proceso de entrega de una gran organización.
Android TV Leanback UI D-pad Navigation ExoPlayer Kotlin MVP Scrum A/B Testing
Dec 2017 – Mar 2018

Desarrollador Android

UXSmobile Madrid

  • Desarrollé nuevos módulos para la app BMI – Evo Banco con Arquitectura Limpia + MVP en Kotlin.
  • Implementé integraciones REST seguras con Retrofit y persistencia local con Room.
  • Trabajé bajo estándares de calidad y seguridad propios del sector bancario.
Kotlin MVP Retrofit Room Fintech
Nov 2016 – Dec 2017

Desarrollador Android

Mobile One2One Madrid

  • Entregué apps Android nativas para clientes corporativos en retail, transporte y hostelería (Carrefour, Alsa, Iberostar, Baleària, Meliá).
  • Construí funcionalidades de punta a punta con MVP / Arquitectura Limpia, principalmente en Java y dando mis primeros pasos con Kotlin.
  • Integré APIs REST (Retrofit) y persistencia offline (Realm), implementando diseños de UI personalizados.
  • Me adapté a requisitos y bases de código distintas según cada cliente, dentro de un modelo de entrega de agencia.
Java Kotlin Custom UI MVP Clean Architecture Retrofit Realm Enterprise Apps
Sep 2015 – Nov 2016

Desarrollador Android

AvantGarde IT Services Madrid

  • Desarrollé y publiqué apps Android de cara a cliente en Java para clientes del sector público y corporativo (Indra, DGT, Atenzia, Brightstar).
  • Desarrollé en Java usando principalmente AsyncTasks, empezando a incorporar librerías como Retrofit, ButterKnife, EventBus y una de las primeras versiones de Dagger.
  • Construí interfaces en XML y participé en todo el ciclo de vida de las funcionalidades.
Java XML AsyncTasks Retrofit ButterKnife EventBus Dagger

Proyectos Destacados

Una selección de proyectos donde lideré la arquitectura de principio a fin.

Technical Lead (Freelance) · 2026–presente

Explora Prado

Una guía digital interactiva para el Museo del Prado que transforma la colección permanente en una experiencia autoguiada con trivias y multimedia. Único desarrollador y responsable técnico: desde la arquitectura y compras integradas hasta la publicación en la App Store y Google Play.

2plataformas
Flutter BLoC Firebase In-App Purchases TDD
Proyecto personal · 2026

App de Salud e IA

Una app de Android centrada en la privacidad y construida sobre la Health Connect API que agrega datos de salud personales en métricas útiles y combina IA on-device (AICore / Gemini Nano) con IA en la nube para ayudar a los usuarios a entender y mejorar su salud. Local-first por diseño: los datos sensibles se procesan en el dispositivo siempre que es posible.

Local-firstprivacidad On-device + nubeIA
Android Health Connect AICore (Gemini Nano) IA en la nube IA on-device
Proyecto personal · 2026

App multiplataforma para hotel canino

Una app en Kotlin Multiplatform para un negocio real de hotel canino, que agiliza cómo el personal comparte las fotos y vídeos de las mascotas con sus dueños. KMP comparte la capa de dominio (y probablemente de datos) entre apps nativas de Android (Jetpack Compose) e iOS (SwiftUI), con acceso por roles para personal y clientes, gestión de reservas y un feed de novedades con notificaciones push. Con Firebase por ahora, y reconocimiento de mascotas por IA en el roadmap.

Android + iOSKMP compartido UI nativaCompose + SwiftUI
Kotlin Multiplatform Jetpack Compose SwiftUI Firebase Notificaciones push
Senior Android Engineer · 2021–26

Internal Ads SDK

Un SDK interno de monetización que diseñé y lideré de extremo a extremo, sirviendo publicidad en las tres verticales de consumo de OLX (Horizontals, Real Estate y Motors) usadas por decenas de millones. Límites estrictos de api/impl, cumplimiento GDPR y un pipeline TDD que elevó la cobertura del 14% al 70%.

10M+usuarios alcanzados 3verticales 14→70%cobertura de tests
Android SDK Jetpack Compose Coroutines & Flow GDPR API Design
Único Ingeniero Android · 2019–21

Wegow

App de descubrimiento de conciertos y compra de entradas que reconstruí desde cero, reemplazando el legacy de Java/Dagger 1 por una "v2" en Kotlin con MVVM / Arquitectura Limpia e integrando pagos de entradas (Stripe y Redsys) y descubrimiento de eventos por geolocalización.

v2aún en producción 100%reescrito a Kotlin
Kotlin MVVM Dagger 2 Payments Google Maps TDD

Habilidades Técnicas

Lenguajes

Kotlin Dart Java TypeScript JavaScript SQL XML JSON

Stack Android

Jetpack Compose Coroutines & Flow Clean Architecture MVVM / MVI RxJava EventBus (legacy) Hilt / Dagger 2 Koin Retrofit / Ktor Coil Jackson Room WorkManager Timber Baseline Profiles Macrobenchmark JUnit / MockK GitHub Actions Android TV Health Connect API AICore (Gemini Nano) TTS / STT on-device Material Design

Stack Flutter

BLoC Riverpod Clean Architecture in_app_purchase Firebase / Firestore App Check Flutter Web Platform Channels

Kotlin Multiplatform y multiplataforma

Kotlin Multiplatform (KMP) Capa de dominio / datos compartida Compose Multiplatform SwiftUI (iOS nativo) SQLDelight Ktor Multiplatform React Native (nivel familiar) JavaScript / TypeScript (nivel familiar)

IA y Herramientas Agentivas

Claude Code (daily) Cursor Codex Ollama (local models) Windsurf Gemini Qwen MCP Servers (Model Context Protocol) AI Skills / Custom Skill Packages AGENTS.md / DESIGN.md patterns

Cloud y SDKs

Firebase Suite Google Ad Manager SDKs de ad-networks / mediación Amplitude CleverTap Crashlytics Stripe Redsys Twilio

Herramientas de Ingeniería

Android Studio VS Code Git Gradle (Kotlin DSL / Groovy) Version Catalogs Maven Publish / Artifactory GitHub Actions Jenkins Fastlane CI / CD

Testing y Calidad

TDD JUnit MockK Espresso Robolectric MockWebServer JaCoCo Detekt / ktlint

Privacidad y Consentimiento

GDPR Android Privacy Sandbox IAB TCF Google UMP

Metodologías

A/B Testing Agile Scrum Kanban JIRA

Competencias Clave

Android(95%) Flutter(90%) KMP(75%) Herramientas IA(90%) Cloud / SDKs(85%) Arq / TDD(95%)

Educación

Graduado en 2012

Ingeniería Técnica en Informática de Gestión

Universidad de La Rioja Spain

Proyecto de Fin de Carrera desarrollado sobre la plataforma Android — Nota: 9/10

Idiomas

Español Nativo
Inglés Competencia profesional
Portugués Elemental

Intereses

Fotografía y Vídeo 360°

Apasionado de la captura inmersiva en 360° y usuario activo de una cámara Insta360 X4 — me encanta revivir mis viajes en 360° y captar los ángulos que una cámara normal no alcanza.

Moteros y Viajes

Feliz sobre dos ruedas y siempre con ganas de una carretera nueva — la mayoría de mis viajes en moto y mis vacaciones acaban siendo la excusa perfecta para sacar la cámara 360°.

Running y CrossFit

Me mantengo activo con running y CrossFit de forma habitual — es como conservo la disciplina y la energía que luego se trasladan a mi forma de trabajar.

Tecnología y Domótica

Cacharrero de vocación — disfruto montando y automatizando mi casa inteligente y trasteando con nuevos gadgets, hardware y cualquier cosa que pueda desmontar y mejorar.

Música

Una banda sonora constante en mi día a día — siempre descubriendo música nueva y rara vez programo, conduzco o viajo sin algo sonando.

Cine y Series

Me encanta desconectar con una buena película o serie — me atraen por igual una historia que engancha y todo lo que tenga una imagen impactante.

Contacto

¿Interesado en trabajar juntos o quieres debatir sobre arquitectura móvil, sistemas Flutter o integraciones de IA agentiva? ¡Escríbeme!

Ubicación España (Remoto)