Senior Android Developer · Rabat, Morocco

Nour-Eddine Doudou. I build secure, scalable and fast Android apps.

Android engineer working on large mobile banking apps: modular Clean Architecture, Jetpack Compose, payment and card-tokenization SDKs, and the release work that gets them safely to Google Play.

:appJetpack Compose · Navigation
:feature:*payments · markets · voice
:domainuse cases · models · contracts
:data · :corenetwork · cache · security
./gradlew assembleRelease BUILD SUCCESSFUL
  • Kotlin
  • Jetpack Compose
  • Coroutines & Flow
  • Clean Architecture
  • MVVM · MVI
  • Hilt
  • Koin
  • Room
  • Paging 3
  • WorkManager
  • Retrofit · OkHttp
  • GraphQL
  • Google Wallet
  • Fastlane
  • Firebase
  • SonarQube
Faster feature delivery
40%
after re-architecting MyCDM into modular Clean Architecture
Test coverage
>85%
JUnit and Mockito strategy on MyCDM
Critical bugs
0
SonarQube quality gates held for 6 months
Ra3d News installs
10K+
my own news app on Google Play

:projects

Selected work

Two banking apps used by real customers, one product I built and run end to end, and the projects that taught me the craft. Banking work is described at the level that is public; no internal APIs or code.

Personal product · Live on Google Play

Ra3d News رعد الخبر

A Moroccan news app that brings dozens of sources into one fast, Arabic-first reader, with AI summaries, live TV, radio and short videos. I designed, built and operate it: the Android app, the Python backend that ingests the RSS feeds, and the website.

  • RSS aggregation with smart parsing, categories and source management
  • AI article summaries through the Gemini API
  • Offline-first cache with Room, lazy-loaded media, background sync with WorkManager
  • Topic-based push notifications, dynamic themes and dark mode
  • Kotlin, Jetpack Compose, Hilt, Retrofit; Firebase; Fastlane and GitHub Actions for delivery
10K+ downloads
Ra3d News home screen: Moroccan and world news from many sources AI news summaries screen Live TV news channels screen

Crédit Agricole du Maroc · 2026 → today

BANK-E · digital banking

Rebuilt the Android foundation of the bank's app as a modular Clean Architecture, so new journeys reuse shared building blocks instead of duplicating code.

:bourseStock market on the SIX Financial GraphQL API, through the bank's backend proxy :e-servicesGeneric server-driven UI: new services ship from the backend :bancassuranceEducation and retirement subscription journeys, savings contracts, PDF statements, simulations :voiceAxon SDK voice banking in Arabic and French: real-time WebSocket, Google TTS, balance, beneficiaries and transfers
Production and release work

Fixed critical production crashes, ran Google Play Console releases and resolved track suspensions.

Crédit du Maroc, via Adria · 2024–2025

MyCDM · mobile banking

Full redesign of the bank's app into a modular Clean Architecture, then card digitalisation into Google Wallet.

  1. Card
  2. Tokenization SDK
  3. Token Manager
  4. Google Wallet
  • −40% time to build a new feature
  • >85% test coverage
  • −30% load time with caching
  • 100+ business events in Firebase Analytics
More on delivery and quality

SonarQube quality gates (0 critical bugs over 6 months), Fastlane deployment across 4 environments (DEV, SIT, PILOT, PROD), Crashlytics and Performance Monitoring, staged Play Store rollouts, production incident handling and hotfixes, and API work with the backend team. On the tokenization side: push-to-Google-Wallet provisioning, dynamic card display and app-to-app authentication between Google Wallet and MyCDM.

Onedustry · 2022–2023

OTO Parking · smart parking

Real-time parking reservation and management, built from scratch.

  • Hourly
  • Daily
  • Night
  • Subscription

Advance booking with a live price preview across the four pricing modes. Clean Architecture with MVVM, Hilt, Jetpack Compose and Kotlin Coroutines.

Library

Card Tokenization SDK

A reusable Android SDK for card tokenization, with the Google Tap and Pay SDK for secure NFC payments.

Modular design and a small, clear API so any app can integrate it.

More projects

  • Thunder News

    Real-time US news with auto-refresh, Room offline cache and location-aware push notifications (FCM).

  • Rikyat

    Marketplace for reselling unused travel tickets, with carpooling, multilingual UI and location-aware notifications. Released on Google Play.

  • Sya9a Maroc

    Moroccan driving-licence prep: courses, official question bank, timed mock exams, progress stats.

    Watch the demo
  • Learn Python

    Learning environment with lessons, challenges, exercises and a Python interpreter with syntax highlighting.

    Watch the demo
  • Qatra

    Connects blood donors with blood banks and finds the nearest donation centres.

:experience

Career, release by release

  1. current

    Senior Android Developer · Crédit Agricole du Maroc

    Rabat

    • Rebuilt the BANK-E Android foundation as a modular Clean Architecture to cut duplicated code and speed up new features
    • Designed the E-Services module on a generic server-driven UI
    • Designed and built the Bourse module on the SIX Financial GraphQL API via the bank's backend proxy
    • Built the Bancassurance module: subscription journeys, savings contracts, PDF statements, simulations
    • Integrated the Axon voice-banking SDK (Arabic/French, WebSocket, Google TTS)
    • Fixed critical production crashes; ran Google Play releases and resolved track suspensions
  2. consulting

    Android Developer · Adria Business & Technology

    Casablanca · banking clients

    Crédit du Maroc · MyCDM

    • Re-architected the app into modular Clean Architecture: new features 40% faster to build
    • Test strategy above 85% coverage; SonarQube gates with 0 critical bugs for 6 months
    • Fastlane automation for DEV, SIT, PILOT and PROD; staged Play Store rollouts
    • Firebase Analytics (100+ business events), Crashlytics, Performance Monitoring; 30% faster loading through caching
    • Card tokenization SDK, push to Google Wallet, Token Manager, app-to-app authentication

    Bank BFCOI

    • Bank transfer module with multiple beneficiaries; stability fixes

    Bank Al Karam

    • Branch locator with Google Maps, Arabic/French/English support, card management module

    Bank Al Yousr

    • New UX features and maintenance

    ADS · electronic signature

    • Full signing flow: QR code → dynamic display → handwritten signature → OTP; product demos
  3. support L3

    Android Developer · SQLI Maroc

    Casablanca · Nespresso, L3 support team

    • Production support and critical incident resolution
    • Deep log analysis and documented escalations to the development teams
    • Found and fixed bottlenecks: faster responses and a lower crash rate
  4. first release

    Android Developer · Onedustry

    Casablanca · OTO Parking

    • Designed and built a real-time parking reservation app
    • Advance booking with a price calculator: hourly, daily, night and subscription, with live preview
    • Clean Architecture + MVVM, Hilt, Jetpack Compose, Kotlin Coroutines

:expertise

What I work with

Tools I use in production, grouped the way an Android codebase is.

01

Android engineering

  • Kotlin
  • Java
  • Jetpack Compose
  • Android SDK
  • XML views
  • Coroutines
  • Flow / StateFlow
  • Navigation
  • Room
  • Paging 3
  • WorkManager
02

Architecture

  • Clean Architecture
  • Modularization
  • MVVM
  • MVI
  • Repository pattern
  • SOLID
  • Design patterns
  • Server-driven UI
03

Networking & data

  • Retrofit
  • OkHttp
  • REST
  • GraphQL
  • kotlinx.serialization
  • Offline-first caching
  • WebSocket
04

Dependency injection

  • Hilt
  • Koin
05

Testing & quality

  • JUnit
  • Mockito
  • SonarQube
  • Firebase Crashlytics
  • Performance Monitoring
  • Chucker
06

Delivery

  • Gradle & build logic
  • Fastlane
  • GitHub Actions
  • Firebase
  • Google Play Console
  • Git · GitLab · Bitbucket
07

Payments & security

  • Card tokenization
  • Google Wallet
  • Google Tap and Pay
  • Token management
  • App-to-app authentication
  • OTP flows

:principles

How I build

  1. Architecture that pays rent

    Modules exist to let the next feature ship faster. On MyCDM that meant 40% less time per new feature, not a prettier diagram.

  2. Quality you can measure

    Coverage targets, quality gates and crash dashboards decide when code is done. A gate at zero critical bugs is a promise to the team.

  3. Performance is a feature

    Users notice waiting before they notice design. Caching, lazy media and background sync come first, then the polish.

  4. Security by default

    In banking, card data and tokens never leave the secure path. Tokenization, token lifecycle and authentication flows are designed in, not bolted on.

  5. Releases are part of the job

    Automated builds per environment, staged rollouts and a calm incident process. Shipping safely is engineering too.

:about

About me

I'm an Android developer based in Rabat, building apps since 2022. Most of my work is high-stakes banking: rebuilding apps that customers rely on every day, designing reusable foundations, and integrating payment and tokenization SDKs.

I work closely with backend, security, business and QA teams, and I like owning a feature from the architecture decision to the Play Store rollout. Outside work, I run Ra3d News, my own app with more than 10K downloads, which keeps me hands-on with every part of shipping a product.

Arabic · nativeFrench · fluentEnglish · professional

Education

  1. Master's in Big Data and Internet of ThingsENSAM Casablanca, École Nationale Supérieure d'Arts et Métiers
  2. Professional Licence in Information Systems and Software EngineeringFaculté des Sciences Dhar El Mehraz, Fès
  3. BTS in Information Systems DevelopmentLycée technique, Guelmim

:contact

Let's build something solid.

Open to Senior and Lead Android roles, and to freelance mobile engineering: architecture reviews, app modernisation, payments and tokenization, CI/CD for Android.

Message me on LinkedIn