Skip to content
Muhammed Ali
Kocabey

Home/Work

WORK & EXPERIENCE

Android, in practice.

Identity verification in banking, Kotlin code generation, open source and my own product. What I owned, and how I approached the work.

System map

From source to production: how I build a piece of work.

  1. 01Source@Destination · Kotlin
  2. 02BuildKSP code generation
  3. 03SDKNFC eID library
  4. 04AppFeature teams · 9+ apps
  5. 05ProductionAkbank · live in banking

01NFC identity verification SDK

Akbank Mobile · Android

From a chip to an application flow.

I designed and built from scratch the Android SDK that performs NFC identity verification in Akbank Mobile’s onboarding flow.

My responsibility
Design and development of the Android SDK: chip communication, data-group reading, identity matching, verification and application integration.
Architectural approach
Separated reading, verification and integration in a modular library, using Clean Architecture and Hilt for integration by feature teams.
Explore the technical approach
  • Read the eID chip using BAC/PACE access control and ICAO 9303 secure messaging.
  • Read DG1 (MRZ) and DG2 (face) data groups over APDUs, then used Passive Authentication against the SOD to verify the document signature and data-group hashes.
  • This account describes responsibilities and the shareable approach; it does not expose internal source code.
Three responsibilities of the SDK

Open a layer to see its responsibility.

  1. 01Read
  2. 02Verify
  3. 03Integrate
01ReadIdentity chip → data

First, reach the data.

Communicate with the identity chip over NFC and read its data groups. Reading the data does not, on its own, verify it.

NFC · Chip communication
02VerifyData → verification result

Getting data and trusting it are different jobs.

Document signatures and data integrity require separate checks. The reading result needs verification before the application can proceed.

Signature · Data integrity
03IntegrateSDK → application

Make the technical result usable.

Connect the Android SDK to the application flow. A modular structure keeps chip communication and verification separate from integration.

Android SDK · Modular structure

Conceptual responsibility map
Does not represent the bank’s internal architecture.

KSP / Kotlin Symbol Processing

Moving repetitive routing code to build time.

Defining the navigation graph by hand created repetitive code and merge problems as new screens were added. I developed a proof of concept for a KSP processor that reads @Destination annotations and generates the graph.

  1. 01 / SOURCE@Destination
  2. 02 / PROCESSORKotlin Symbol Processing
  3. 03 / OUTPUTGenerated navigation graph

My contribution was the proof of concept and initial processor. The framework team matured it and took it into the shared infrastructure and production.

02Open to inspection.

Open-source projects

Open source · 2025 - ongoing

Aspectify

Explore the source

Separates cross-cutting concerns (logging, auth, cache, retry, timeout) from business logic behind a single annotation. Runs on Android and plain JVM alike.

  • Kotlin
  • AOP
  • Reflection
  • Dynamic Proxy
  • Android · JVM
Scope and features
  • @Loggable
  • @Retryable
  • @Cacheable
  • @Timed
  • @RateLimit
  • @BackgroundThread
  • @Debounce
  • @Timeout
  • @Transactional
  • @Authenticated

Open source · 2025

SecureCheck

Explore the source

Runtime and system-level integrity checks for Android. Root, Frida, Play Integrity, SSL pinning, tamper and more: 25+ checks aggregated into a single SecurityState model; exportable for auditing and diagnostics.

Jetpack Compose + MotionLayout UI, DI via Dagger 2, encrypted storage with EncryptedSharedPreferences / AndroidKeyStore.

  • Android
  • Security
  • MVVM
  • Clean Architecture
  • Dagger 2
Scope and features
  • Root
  • Frida / Xposed
  • Play Integrity
  • SSL Pinning
  • APK Signature
  • Tamper / Repack
  • Debugger
  • Emulator / VPN / MockLoc
  • Reflection
  • Dex Loading
  • WebView Security

Open source · crypto reference app

Exzi

Explore the source

A reference app demonstrating modern Android practice over crypto trading screens: MVVM, DI with Hilt, a UseCase layer, and unit tests.

  • Kotlin
  • MVVM
  • Hilt
  • UseCases
  • Unit Test

Open source · reference app

Mealz Compose App

Explore the source

A clean reference app for the modern Android stack: MVVM, Coroutines, Compose, Retrofit. Built around recipe discovery.

  • Jetpack Compose
  • MVVM
  • Coroutines
  • Retrofit

03Professional experience

Roles, responsibilities, context

Jan 2026 - Present

Senior Android Engineer

Akbank T.A.S. (via Veripark)

  • Designed and built Akbank Mobile's NFC identity verification SDK from scratch; live since Feb 2026.
  • Built NFC eID and liveness-based identity-verification onboarding for KYC, using liveness as an anti-spoofing control.
  • Wrote the shared Hilt multibinding patterns and the common network-response architecture used across feature modules.
  • Built a KSP-based build-time codegen POC for the navigation/router module; the framework team took it to production org-wide.

Kotlin · NFC · KSP · Clean Architecture · Hilt · Coroutines/Flow · CI/CD

Feb 2024 - Jan 2026

Senior Android Developer

Akbank T.A.S. (via Veripark)

  • Migrated financial modules including investments, SIM block, corporate admin and limits to MVVM + UseCase, with static analysis and test coverage.
  • Wrote the RxJava → Coroutines migration PoC. The lifecycle-aware utilities I shipped run across the org's feature modules.
  • Closed long-standing session and routing crashes on the admin and account screens.

Kotlin · MVVM · UseCase · RxJava → Coroutines · Clean Architecture

Feb 2023 - Feb 2024

Android Developer

Akbank T.A.S. (via Veripark)

  • Wrote parameterized UI components such as CalendarSelectable and DoubleOption, adopted by several feature teams.
  • Contributed to the static analysis pipeline, encryption standards and secure coding practices.

Kotlin · Static Analysis · Encryption

Oct 2022 - Feb 2023

Android Developer

Altamira Digital

  • As the sole Android developer, built and shipped 8 commercial apps from scratch with modular MVVM and REST APIs: Zorlu World, TAV Passport, 42 Maslak, Emaar, Nidalife, Aliving, Büyükyalı, Florya. All met Play Store compliance.
  • Reduced runtime issues and crash rates on live, high-traffic apps; added secure session handling for loyalty and location-based promotions.

Kotlin · MVVM · REST · Play Console

Jul 2021 - Oct 2022

Android & iOS Developer

Comodo / Xcitium

  • Owned a cross-platform mobile security app (Android/Java + iOS/Swift) solo: antivirus scanning, runtime threat detection, device integrity.
  • Moved synchronisation to scheduled background services and shortened the on-device scanning path.

Kotlin · Java · Swift · Backend integration

Jan 2019 - Jun 2021

Founder & Developer

ScoreUpp

  • Built an NLP analytics platform that pulled sentiment and categories out of Play Store reviews, using BERT, SymSpellPy, and custom classifiers under the hood.
  • Built the MVP with a Flask backend, an NLP pipeline and a lightweight Android interface, including automated review tagging.

Python · Flask · BERT · SymSpellPy · Android · NLP

04Application work

Altamira · Comodo / Xcitium · Open source

Applications I developed across loyalty, residential services and mobile security. Commercial application links open a store search.

05Technology and practice

Most of this is from production; the data/AI side is from side projects and coursework.

FOCUS AREAS

Android · MVVM & Clean Architecture · Mobile security · REST · Back-End · Relational DB · NoSQL · Data science · Machine learning · Deep learning · NLP · Web scraping

MOBILE ARCHITECTURE

Kotlin · Java · Jetpack Compose · AndroidX · Coroutines · Flow · RxJava · Hilt · Dagger · Navigation Component · KSP · Custom SDK · Clean Architecture · MVVM · MVI · Modularization · Repository · UseCase · UDF · Retrofit · Room · Glide · Firebase

SECURITY

NFC Identity Verification · Biometric Auth · Secure Coding · Encryption Standards · Runtime Integrity Checks · SSL Pinning · Play Integrity · Static Analysis · OWASP Mobile

LANGUAGES · PRODUCTION

Kotlin · Java · Swift · Python

LANGUAGES · FAMILIAR

C · C++ · C# · SQL · JavaScript · PHP · x86 Assembly · HTML5 / CSS3

BACK-END & DATA STORES

Spring (JPA · REST) · Flask · REST API · MySQL · SQLite · MongoDB · Bootstrap

DATA & AI (SIDE PROJECTS)

BERT · TensorFlow · Keras · Scikit-Learn · spaCy · NLTK · SymSpellPy · NumPy · Pandas · Selenium

TESTING & QUALITY

JUnit · Mockito · MockK · CI Test Pipelines · TDD · SOLID · OOP · DRY · KISS

TOOLING & DEVOPS

Git · GitLab CI/CD · Bitbucket · Docker · Google Cloud · AWS · Colab · Azure DevOps · Jira · Confluence · Android Studio · IntelliJ IDEA

06Sharing what I learn.

Shaping the Future of Android

A podcast about Android architecture and Kotlin. In my writing, I explore my open-source projects and experience building software.

Listen to the podcast ↗

07Education and certifications

CERTIFICATION

Professional Scrum Developer I (PSD I)

Scrum.org · 2025

CERTIFICATION

Professional Scrum Master I (PSM I)

Scrum.org · 2025

TRAINING

Agile & Scrum Master Training

Akbank · 2023 (advanced modules 2024)

TRAINING

Secure Coding Training

Akbank · 2023

SPECIALIZATION

Deep Learning & NLP Specialization

DeepLearning.AI (Coursera) · 2020 · Neural Networks, CNNs, Sequence Models

EDUCATION

BSc, Computer Engineering

Konya Technical University · 2016 - 2021

Education, courses and organisations →

08Work notes

Notes from July 2026

Akbank Mobile · navigation module

After the NFC flow shipped, I built a KSP-based codegen POC for the navigation/router module; the framework team took it to production org-wide.

Explore ↑

Aspectify

Handles cross-cutting concerns like logging, retry, cache and timeout through a single annotation. Built on Kotlin Reflection and Dynamic Proxy.

Explore ↗

Shaping the Future of Android

Short episodes on Android architecture. Spotify, Apple Podcasts, Amazon Music.

Explore ↗

WORK TOGETHER

Let’s start with a good problem.

Looking for an Android engineer for your team, or someone to think through a technical problem with? Let’s talk.

Book a 30-minute conversation[email protected]All contact and podcast links