David Ruiz Urraca profile picture
Available for Remote Roles

DAVID RUIZ URRACA

Senior Mobile Engineer / Android Developer|

With over 10 years of experience building high-scale, production applications, I specialize in crafting robust native Android architectures, building fluid cross-platform apps with Flutter and Kotlin Multiplatform (KMP), and championing agentic AI integration in my daily workflow.

Professional Profile

Product-minded Senior Mobile Engineer with 10+ years building production Android applications at scale, with a strong cross-platform track record in Flutter and active Kotlin Multiplatform (KMP) adoption.

Currently, I am the Technical Lead and sole developer of Explora Prado (Flutter), an app for Museo del Prado — a recognised project that received an Art-Tech 2025 Honorable Mention and was selected for Santander X Explorer 2026.

Previously, I owned an internal Android Ads SDK end-to-end at OLX Group — managing versioning strategy, backward compatibility, GDPR consent flows, and integration ergonomics for partner teams across OLX's three consumer verticals (Horizontals, Real Estate & Motors), each shipping market-specific builds, serving tens of millions of active users.

I advocate for TDD (Test-Driven Development) and generative AI/agentic workflows as core engineering practices — leveraging Claude Code, Cursor, Codex, and Ollama alongside custom skill packages, terminal-integrated command loops, automated test-debug cycles, and structured AGENTS.md / DESIGN.md patterns to ensure AI-assisted development is fast, reproducible, and team-ready.

On personal projects I also work hands-on with health and on-device AI integrations — building with the Health Connect API and Android's AICore (on-device Gemini Nano), plus on-device TTS and STT, for private, local-first features. I'm currently building a personal Android health app that reads Health Connect data to generate personal health metrics and pairs on-device AI with cloud AI to help users understand and improve their health. In parallel, I'm developing a Kotlin Multiplatform app for a real dog-boarding business — sharing the domain (and likely data) layer across native Android (Jetpack Compose) and iOS (SwiftUI) apps — with AI-powered pet recognition on the roadmap.

Current Focus (Now)

Active Focus

Here is what I am focused on right now, in mid-2026:

  • Explora Prado: Now live on both the App Store and Google Play — and still in active development. Shipping new features, scaling and refactoring the technical platform of this recognised Flutter app, optimizing multi-store payments, and owning the full technical roadmap post-launch.
  • Cross-Platform (KMP & Flutter): Advancing Compose Multiplatform, client-server sharing, and scalable Flutter architectures to maximize code reuse.
  • React Native (JS/TS): Building working knowledge of React Native with JavaScript and TypeScript. Not at my Kotlin or Dart level — but paired with app architecture experience and an AI-assisted workflow, enough to take on React Native projects and get productive on them quickly.
  • AI-Driven Workflows: Continuous integration of agentic loops (Claude Code), custom Model Context Protocol (MCP) servers, and terminal-integrated testing cycles into daily mobile workflows.

Professional Experience

Jan 2026 – Present

Technical Lead (Freelance)

Explora Prado Spain (Remote)

A recognised Flutter app turning Museo del Prado's permanent collection into a self-guided digital experience — recipient of the Art-Tech 2025 Honorable Mention and selected for the Santander X Explorer 2026 programme.

  • Sole owner of the full technical platform: architecture, implementation, release pipeline, and the live releases on the App Store and Google Play.
  • Built the app end-to-end on Flutter/Dart for both Android and iOS with Clean Architecture + BLoC and a layered data model (DTO / Entity / Model), backed by Firebase (Firestore, Storage, Authentication, Analytics, Crashlytics).
  • Implemented the in-app purchase layer for both stores (in_app_purchase) — purchase verification flow and entitlement persistence, a non-trivial native integration on Android and iOS, with store-side product configuration live in both stores.
  • Built dynamic multi-language support (Spanish & English live, with Italian, French, and Portuguese planned) and adaptive UI for a content-heavy museum experience with SVG assets and custom typography. Also built the internal content-administration back-office in Flutter Web — an operator-only tool, never exposed to end users.
  • Developed core features (interactive quiz system, multimedia guides, and payment flows) using Test-Driven Development (TDD) to ensure robust offline synchronization and application reliability.
  • Scaled output as a solo developer through an AI-first workflow leveraging Claude Code and Cursor alongside custom skill packages, terminal command loops, and structured AGENTS.md / DESIGN.md patterns.
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 (Remote)

Android development for a leading global marketplace operating across Poland, Portugal, Turkey, Ukraine, Romania, India, Indonesia, South America, and other markets.

  • Technical lead and architect of the internal Android Ads SDK powering monetisation across OLX's three consumer verticals (Horizontals, Real Estate & Motors), each shipping market-specific builds, serving tens of millions of active users — integrating ad demand primarily through Google Ad Manager alongside additional third-party ad-network SDKs.
  • Designed an api/impl module separation pattern enforcing strict dependency boundaries — improved build times and made partner-team integrations safer and more predictable; standardised the build with Gradle convention plugins, version catalogs, and composite builds.
  • Drove privacy-first decisions across the SDK: consent state management (IAB TCF, Google UMP), scoped tracking, GDPR and Android Privacy Sandbox compliance.
  • Led migration of critical SDK surfaces from XML to Jetpack Compose and from callback-based async to Kotlin Coroutines & Flow, while maintaining backward compatibility.
  • Leveraged Test-Driven Development (TDD) with JUnit and MockK to design the SDK APIs, ensuring zero regression across host apps — raised SDK test coverage from 14% to 70%.
  • Owned SDK lifecycle end-to-end: versioning strategy, AAR packaging and publication via Maven Publish to Artifactory and Maven Central, integration documentation, and mentoring partner-app teams.
  • Contributed cross-team feature work on consumer apps, reinforcing SDK integration patterns from the consumer side.
  • Collaborated closely with international teams across OLX's offices in Istanbul, New Delhi, Poznań, and Lisbon — coordinating integration and delivery across time zones and markets.
  • Led cross-platform coordination with the iOS SDK team to synchronize API designs, telemetry schemas, and release lifecycles, establishing a unified integration standard for client teams.
  • Integrated GraphQL-based APIs for data fetching in consumer-app feature work.
  • Wrote my first Flutter code here, building cross-platform features alongside the native Android work — a foundation later deepened on Explora Prado.
  • Tracking and analytics integration: 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

Senior Android Developer

Wegow Madrid (Remote)

Live-music events discovery and ticketing platform. Joined as the company's only Android developer and owned the full app end-to-end: architecture, feature delivery, and production stability across a heterogeneous device base.

  • Inherited a legacy Java codebase built on deprecated libraries (Dagger 1); stabilised it and shipped new features during an initial support phase.
  • Led and built a ground-up rebuild ("v2") in Kotlin with Dagger 2 on MVVM / Clean Architecture, replacing the legacy Java/Dagger 1 app — a foundation that still underpins the company's product today, 6 years after my departure.
  • Built with Room, LiveData, ViewModels, and Coroutines, with Glide for image loading and Firebase for push notifications, analytics, and Crashlytics.
  • Integrated Stripe and Redsys payment gateways for ticket purchases and the Google Maps SDK for event discovery and venue geolocation.
  • Implemented Test-Driven Development (TDD) as a core practice to ensure high reliability and a regression-free codebase during the rebuild.
  • Coordinated directly with the iOS developer to align feature contracts, analytics schemas, and release cycles, driving joint initiatives to unify product behavior across both platforms.
Kotlin MVVM Dagger 2 Room Stripe Redsys Google Maps Clean Architecture TDD A/B Testing
Jul 2018 – Sep 2019

Android Developer

Instantgo Madrid (Remote)

On-demand services marketplace where independent professionals offered paid sessions at an hourly rate — most delivered online via 1:1 video call, with support for in-person services too. User base concentrated in California, available across many countries.

  • Built the Android app from scratch and brought it to feature parity with the existing iOS app.
  • Integrated paid 1:1 video calls with Twilio, managing session and connection lifecycle.
  • Implemented the in-app payment flow with Stripe for booking paid sessions.
  • Integrated the Firebase ecosystem (Authentication, push notifications, analytics, Crashlytics, Realtime Database, Storage, Cloud Functions, and App Distribution for build delivery) with Dagger 2 for dependency injection.
  • Sole Android developer — built the app from scratch with full technical autonomy in a fast-paced startup, using Kotlin + MVVM / Clean Architecture with Retrofit, Room, LiveData, and Glide.
Kotlin MVVM Clean Architecture Dagger 2 Firebase Twilio Stripe Retrofit Room A/B Testing
Mar 2018 – Jul 2018

Android Developer

Telefónica Madrid

Android TV development for Movistar TV, Telefónica's IPTV / streaming platform.

  • Developed features for the Movistar TV Android TV surface with D-pad navigation and Leanback UI components.
  • Worked with ExoPlayer for video playback and integrated custom JavaScript components into the Android TV surface.
  • Worked in a Scrum team applying MVP and Kotlin within a large-organization delivery process.
Android TV Leanback UI D-pad Navigation ExoPlayer Kotlin MVP Scrum A/B Testing
Dec 2017 – Mar 2018

Android Developer

UXSmobile Madrid

  • Built new modules for the BMI – Evo Banco app with Clean Architecture + MVP in Kotlin.
  • Implemented secure REST integrations with Retrofit and local persistence with Room.
  • Worked under banking-sector quality and security standards.
Kotlin MVP Retrofit Room Fintech
Nov 2016 – Dec 2017

Android Developer

Mobile One2One Madrid

  • Delivered native Android apps for enterprise clients in retail, transport, and hospitality (Carrefour, Alsa, Iberostar, Baleària, Meliá).
  • Built features end-to-end with MVP / Clean Architecture, primarily in Java while taking my first steps with Kotlin.
  • Integrated REST APIs (Retrofit) and offline persistence (Realm), implementing custom UI designs.
  • Adapted to differing requirements and codebases per client within an agency delivery model.
Java Kotlin Custom UI MVP Clean Architecture Retrofit Realm Enterprise Apps
Sep 2015 – Nov 2016

Android Developer

AvantGarde IT Services Madrid

  • Built and shipped client-facing Android apps in Java for public-sector and enterprise clients (Indra, DGT, Atenzia, Brightstar).
  • Developed in Java using mainly AsyncTasks, starting to incorporate libraries such as Retrofit, ButterKnife, EventBus, and an early version of Dagger.
  • Built UIs in XML and contributed across the full feature lifecycle.
Java XML AsyncTasks Retrofit ButterKnife EventBus Dagger

Featured Projects

Selected work where I owned the architecture end-to-end.

Technical Lead (Freelance) · 2026–present

Explora Prado

A self-guided digital companion for the Museo del Prado that turns the permanent collection into an interactive, multilingual tour with quizzes and multimedia guides. Sole developer and technical owner — from Clean Architecture and in-app purchases to shipping on the App Store and Google Play.

2platforms
Flutter BLoC Firebase In-App Purchases TDD
Personal Project · 2026

Health & AI App

A privacy-first Android app built around the Health Connect API that aggregates personal health data into meaningful metrics, then pairs on-device AI (AICore / Gemini Nano) with cloud AI to help users understand and improve their health. Local-first by design — sensitive data stays on-device where possible.

Local-firstprivacy On-device + cloudAI
Android Health Connect AICore (Gemini Nano) Cloud AI On-device AI
Personal Project · 2026

Cross-Platform Pet-Hotel App

A Kotlin Multiplatform app for a real dog-boarding business, streamlining how staff share pets' photos and videos with owners. KMP shares the domain (and likely data) layer across native Android (Jetpack Compose) and iOS (SwiftUI) apps, with role-based access for staff and clients, booking management and a push-notified news feed. Firebase-backed for now, with AI-powered pet recognition on the roadmap.

Android + iOSshared KMP Native UICompose + SwiftUI
Kotlin Multiplatform Jetpack Compose SwiftUI Firebase Push Notifications
Senior Android Engineer · 2021–26

Internal Ads SDK

An internal monetisation SDK I architected and led end-to-end, powering ads across OLX's three consumer verticals (Horizontals, Real Estate & Motors) used by tens of millions. Strict api/impl module boundaries, GDPR consent management, and a TDD pipeline that raised coverage from 14% to 70%.

10M+users reached 3verticals 14→70%test coverage
Android SDK Jetpack Compose Coroutines & Flow GDPR API Design
Sole Android Engineer · 2019–21

Wegow

A live-music discovery and ticketing app I rebuilt from the ground up — replacing a legacy Java/Dagger 1 codebase with a Kotlin "v2" on MVVM / Clean Architecture, then adding in-app ticket payments (Stripe & Redsys) and location-based event discovery.

v2still in production 100%Kotlin rewrite
Kotlin MVVM Dagger 2 Payments Google Maps TDD

Technical Skills

Languages

Kotlin Dart Java TypeScript JavaScript SQL XML JSON

Android Stack

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) On-device TTS / STT Material Design

Flutter Stack

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

Kotlin Multiplatform & Cross-platform

Kotlin Multiplatform (KMP) Shared domain / data layer Compose Multiplatform SwiftUI (native iOS) SQLDelight Ktor Multiplatform React Native (familiar) JavaScript / TypeScript (familiar)

AI & Agentic Tooling

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 & SDKs

Firebase Suite Google Ad Manager Ad-network SDKs / mediation Amplitude CleverTap Crashlytics Stripe Redsys Twilio

Engineering Tools

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

Testing & Quality

TDD JUnit MockK Espresso Robolectric MockWebServer JaCoCo Detekt / ktlint

Privacy & Consent

GDPR Android Privacy Sandbox IAB TCF Google UMP

Methodologies

A/B Testing Agile Scrum Kanban JIRA

Skill Proficiency

Android(95%) Flutter(90%) KMP(75%) AI Tooling(90%) Cloud(85%) Arch / TDD(95%)

Education

Graduated 2012

B.Sc. Computer Science (Information Systems Management)

Universidad de La Rioja Spain

Final Year Project implemented on the Android platform — Grade: 9/10

Languages

Spanish Native
English Professional working proficiency
Portuguese Elementary

Interests

360° Photography & Video

Passionate about immersive 360° capture and an active Insta360 X4 user — I love reliving my trips in full 360° and getting the angles a normal camera can't.

Motorcycling & Travel

Happiest on two wheels and always up for a new road — most of my motorcycle trips and vacations end up being the reason I pick up the 360° camera in the first place.

Running & CrossFit

I stay active with regular running and CrossFit — it's how I keep the discipline and energy that carry over into how I work.

Tech & Home Automation

A tinkerer at heart — I enjoy building and automating my smart home and playing with new gadgets, hardware, and anything I can take apart and improve.

Music

A constant soundtrack to my day — I'm always digging into new music and rarely code, ride, or travel without something playing.

Movies & Series

I love winding down with a good film or series — drawn equally to a gripping story and to anything with striking visuals.

Get In Touch

Interested in working together or want to discuss mobile architecture, Flutter systems, or AI agent integrations? Feel free to reach out!

Location Spain (Remote)