David Ruiz Urraca profile picture
Disponible para trabajo en remoto

DAVID RUIZ URRACA

Ingeniero Móvil Senior / Android Developer|

Construyo sistemas móviles de producción desde 2015: aplicaciones y SDKs nativos de Android, productos Flutter y capas compartidas en Kotlin Multiplatform. Asumo lo que convierte una app móvil en una plataforma: contratos de API y SDK, retrocompatibilidad, privacidad y consentimiento, testing, CI/CD e ingeniería de releases — con IA agentiva integrada en mi forma de entregar.

Perfil Profesional

Ingeniero Móvil Senior orientado a producto que construye sistemas móviles de producción desde 2015: aplicaciones Android nativas, SDKs de Android, productos Flutter y capas compartidas en Kotlin Multiplatform. Asumo la entrega de extremo a extremo: arquitectura, contratos de API y SDK, retrocompatibilidad, privacidad y consentimiento, testing, CI/CD, ingeniería de releases, analítica, pagos y experimentación.

En OLX Group fui propietario del SDK interno de Ads para Android en las verticales Horizontals, Real Estate y Motors, con decenas de millones de usuarios activos y compilaciones específicas por mercado. Lideré su arquitectura, ciclo de vida, publicación, estándares de integración y capacitación de los equipos integradores, elevando la cobertura de tests del SDK del 14% al 70%.

En Explora Prado soy el Technical Lead y único desarrollador de un producto Flutter en vivo 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 — publicado en App Store y Google Play y en desarrollo activo.

Mi trabajo de producto actual combina datos de salud con enfoque privacy-first, IA on-device, IA en la nube y arquitectura multiplataforma: una app de salud para Android construida sobre la Health Connect API y AICore de Android (Gemini Nano on-device), y dos proyectos públicos de portfolio en Kotlin Multiplatform para Android e iOS: carApp, un control de gastos del vehículo offline-first, y Multiverse Explorer, un cliente de la API de Rick and Morty. Ambos comparten dominio, datos y lógica de presentación, manteniendo la UI nativa con Jetpack Compose y SwiftUI; Multiverse Explorer sigue además Material 3 Expressive y Liquid Glass.

Uso TDD (Desarrollo Guiado por Pruebas) y flujos de trabajo con IA generativa/agentiva como prácticas de ingeniería clave — 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 acelerar la implementación preservando reproducibilidad, disciplina de testing y calidad de ingeniería.

Impacto Destacado

  • Propiedad de plataforma móvil: Asumí el ciclo de vida del SDK de Ads para Android en OLX Group — arquitectura, estrategia de API y versionado, retrocompatibilidad, privacidad y consentimiento, empaquetado AAR, publicación en Maven, documentación e integración con los equipos colaboradores.
  • Escala de producción: Di soporte a la monetización de tres verticales de consumo de OLX, cada una con compilaciones específicas por mercado y decenas de millones de usuarios activos.
  • Mejora de calidad: Elevé la cobertura de tests del SDK de Ads para Android del 14% al 70% con JUnit, MockK, Robolectric, Espresso, MockWebServer y JaCoCo, con Detekt y ktlint asegurando la calidad del código.
  • Entrega de producto de extremo a extremo: Construyo y opero toda la plataforma técnica de Explora Prado — apps Flutter para Android e iOS, servicios de Firebase, compras integradas, pipelines de publicación y releases en tienda.
  • Impacto técnico duradero: Lideré la reescritura desde cero en Kotlin/Dagger 2 del producto Android de Wegow; esa v2 sigue sustentando el producto de la empresa seis años después de mi salida.
  • Ingeniería de producto con IA: Desarrollo un producto privacy-first sobre Health Connect que combina Gemini Nano/AICore on-device con IA en la nube, tratando los datos sensibles de salud de forma local-first.

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.

  • Asumo toda la plataforma técnica como único desarrollador: arquitectura, implementación, pipeline de publicación y las versiones publicadas en App Store y Google Play.
  • Desarrollo integral de las aplicaciones de Android e iOS en Flutter/Dart con Arquitectura Limpia, BLoC y una estructura de datos por capas (DTO / Entidad / Modelo) respaldada por Firebase (Firestore, Storage, Authentication, Analytics, Crashlytics).
  • Implementación de la plataforma de compras integradas en ambas tiendas (in_app_purchase), con verificación de compra y persistencia de derechos — una integración nativa compleja en Android e iOS, con los productos activos en ambas tiendas.
  • Localización dinámica (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, con 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 trivias interactivas, guías multimedia, flujos de pago y sincronización offline aplicando TDD para sustentar la fiabilidad de la aplicación.
  • Ejecución de tests A/B con Firebase en onboarding, presentación de contenidos y flujos de conversión.
  • Escalo la entrega en solitario mediante un flujo IA-first con Claude Code y Cursor, 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.
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)

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

  • Propiedad del SDK interno de Ads para Android como plataforma móvil, impulsando la monetización en las verticales Horizontals, Real Estate y Motors de OLX. Cada vertical publicaba compilaciones específicas por mercado con decenas de millones de usuarios activos, integrando la demanda publicitaria principalmente a través de Google Ad Manager junto con SDKs adicionales de ad-networks de terceros.
  • Líder técnico del SDK y único ingeniero Android durante la mayor parte de su ciclo de vida, liderando un equipo Android ampliado temporalmente en periodos de mayor carga.
  • Diseño de la frontera de módulos api/impl para aislar dependencias, hacer las integraciones de los equipos colaboradores más seguras y predecibles y mejorar el rendimiento del build; 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, GDPR y tecnologías de Android Privacy Sandbox (Topics API, Protected Audience, Attribution Reporting).
  • 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.
  • Aplicación de Baseline Profiles y Macrobenchmark para mejorar el arranque y reducir el jank en las pantallas críticas que integran el SDK.
  • Uso de TDD y testing automatizado (JUnit, MockK, Robolectric, Espresso, MockWebServer) para el diseño de las APIs del SDK — elevé la cobertura de tests del 14% al 70%, con Detekt y ktlint asegurando la calidad del código.
  • Gestión completa del ciclo de vida del SDK: versionado y empaquetado AAR, distribución con Maven Publish a Artifactory (JFrog) y Maven Central, documentación de integración y capacitación de los equipos colaboradores.
  • 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 SDK Architecture Release Engineering 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 aplicación de extremo a extremo: arquitectura, entrega de funcionalidades y estabilidad en producción.

  • 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

carApp — Control de gastos del vehículo

Una app multiplataforma para Android e iOS para controlar los gastos del vehículo, desarrollada como proyecto público de portfolio con un MVP offline-first centrado en el combustible. Kotlin Multiplatform comparte el dominio, los datos, la sincronización y la lógica de presentación, manteniendo la UI nativa con Jetpack Compose y SwiftUI. Cubre gestión de vehículos, historial de repostajes y consumos reales (método full-to-full y medias ponderadas por distancia), con persistencia local en SQLDelight, copia y recuperación en Firebase/Firestore, TDD, verificaciones de arquitectura y contratos, y CI protegida con GitHub Actions.

Android + iOSKMP compartido UI nativaCompose + SwiftUI Offline-firstSQLDelight
Kotlin Multiplatform Jetpack Compose SwiftUI SQLDelight Firebase / Firestore GitHub Actions
Proyecto personal · 2026

Multiverse Explorer — Cliente de la API de Rick and Morty

Un núcleo compartido en Kotlin Multiplatform detrás de dos interfaces totalmente nativas que siguen las guías de diseño de cada plataforma: Jetpack Compose con Material 3 Expressive en Android y SwiftUI con Liquid Glass en iOS. 13 módulos con Clean Architecture, REST y GraphQL sobre Ktor, caché preparada para funcionar offline, tokens de diseño de Figma verificados por tests y accesibilidad de serie.

1.550+tests automatizados 13módulos Gradle REST + GraphQLKtor
Kotlin Multiplatform Jetpack Compose Material 3 Expressive SwiftUI Liquid Glass Ktor Tests de capturas GitHub Actions
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 Swift (nivel familiar) 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 DataStore WorkManager Timber Baseline Profiles Macrobenchmark JUnit / MockK GitHub Actions Android TV Health Connect API AICore (Gemini Nano) TTS / STT on-device Material Design Material 3 Expressive Accesibilidad

Stack Flutter

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

Kotlin Multiplatform y multiplataforma

Kotlin Multiplatform (KMP) Capas de dominio / datos / presentación compartidas Compose Multiplatform SwiftUI (iOS nativo, nivel familiar) Liquid Glass (nivel familiar) SQLDelight Ktor Multiplatform React Native (nivel familiar) JavaScript / TypeScript (nivel familiar)

SDK e Ingeniería de Plataforma

Diseño de API y SDK Versionado y retrocompatibilidad Modularización api / impl Convention plugins de Gradle Version catalogs Composite builds Fronteras de módulos verificadas Empaquetado AAR Maven Publish Artifactory / Maven Central Ingeniería de releases Documentación e integración de equipos

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 Xcode (nivel familiar) VS Code Figma (handoff de diseño) Git Gradle (Kotlin DSL / Groovy) Version Catalogs Maven Publish / Artifactory GitHub Actions Jenkins Fastlane CI / CD

Testing y Calidad

TDD JUnit MockK Espresso Robolectric Tests de UI con Compose Roborazzi (tests de capturas) Tests de contrato MockWebServer JaCoCo Detekt / ktlint Android Lint

Privacidad y Consentimiento

GDPR Android Privacy Sandbox IAB TCF Google UMP

Metodologías

A/B Testing Architecture Decision Records (ADRs) 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)