Crafting Mobile Experiences That Matter
I'm a Senior Android Developer / Team Leader at Tagway (Dubai, UAE), working remotely from Mumbai. Since 2018 I've owned the Tagway RFID platform's mobile apps end-to-end: architecture, releases and production reliability for apps running on handheld scanners in warehouses, laundries and hotels, where a wrong count or a crash costs a customer real money.
I modernise long-lived codebases without breaking delivery (XML to Jetpack Compose, screen by screen), share logic across platforms with Kotlin Multiplatform, and harden apps with a security mindset backed by my Certified Ethical Hacker credential. I use Claude Code and other AI tools every day to ship faster, and I write about Android to help other engineers.
data class Developer(
val name: String = "Mohammed Fahim Khan",
val role: String = "Sr. Android Dev / Team Lead",
val experience: Int = 8,
val location: String = "Mumbai, India",
val relocation: Boolean = true,
val stack: List<String> = listOf(
"Kotlin", "Compose", "KMP",
"Swift", "BLE", "CEH"
),
val openToWork: Boolean = true
)
fun main() {
val fahim = Developer()
println("Let's build something great!")
}
Results in Production
Cut Tagway Ice download size from 80MB to 40MB.
Evolved Tagway Ice from v1 to v19 on Google Play (2018โ2024).
Custom lint rules, SOLID design and Compose on MVVM made the code more modular and easier to maintain.
Hardened real-time BLE and REST data sync with RFID hardware, backed by unit, integration and Espresso tests.
Migrated NDK libraries to 16KB page alignment for Android 15+ before the Google Play deadline.
Eliminated ANRs and memory leaks through profiling, and fixed crashes that blocked the Android 14 release before it shipped.
Technical Arsenal
Languages
Android & Architecture
Backend, Hardware & Data
Quality, Release & Observability
Security
Work Timeline
- Built and shipped four native Android apps from scratch for the Tagway RFID platform (Ice, Linen, Smart Tray, AMS) and own each one end-to-end. Evolved Tagway Ice from v1 to v19 on Google Play, with client-specific features delivered through Gradle product flavors.
- Leading the incremental XML โ Jetpack Compose migration on MVVM with unidirectional state (Coroutines, Flow, Room) and Hilt. Custom lint rules enforce the architecture boundaries, improving modularity by 25%.
- Improve performance across the whole stack: cut the app from 80MB to 40MB, eliminated ANRs and memory leaks, fixed crashes that blocked the Android 14 release, and moved the NDK libraries to 16KB page alignment.
- Lower release risk with Play Console staged rollouts, Remote Config feature flags, Crashlytics and custom event tracking. Built Arabic/English localisation and FCM push notifications.
- Integrate with Azure-hosted backends over REST using OAuth2/JWT, and write API specs together with the server engineers. Mentor Android and iOS engineers through code review, pairing and design docs.
Coursework: Artificial Intelligence, Advanced Computer Networks, Cloud Architecture, Software Engineering
Coursework: Java, Data Structures & Algorithms, Database Systems, Software Testing
Featured Work
Tagway Ice โ Android
RFID inventory app published on Google Play that syncs with RFID hardware over BLE and REST in real time. I've owned it from v1 to v19 and am now migrating it to Jetpack Compose.
- 15% fewer post-release bugs. Unit, integration and Espresso coverage
- Download size halved (80MB โ 40MB); NDK libraries 16KB-aligned
- Keystore, EncryptedSharedPreferences, BiometricPrompt, R8
- Arabic/English localisation, FCM, Remote Config staged rollouts
Tagway Ice โ iOS
Native iOS app for phones and tablets, built from scratch. I led a team of four developers and kept its behaviour consistent with the Android app, including BLE sync with the RFID hardware.
Tagway Linen
RFID linen and uniform tracking app for laundries, hotels and uniform providers. It scans tags through every stage of the laundry cycle, reports gaps between expected and actual stock, and tracks wash cycles for hygiene compliance.
Tagway Connect
Production KMP client that sends scanned RFID tags to connected systems over WebSockets in real time. Data models and network protocols are shared across platforms, and the app goes straight to customers, outside the app stores.
Inventory Reporting App
Cross-platform inventory reporting app I delivered within 6 months of learning Flutter. It uses Firebase Analytics, Crashlytics and Remote Config, and keeps API secrets out of the shipped binary.
Tagway Smart Tray & AMS
Two more native Android apps I built from scratch and own end-to-end on the Tagway RFID platform, delivered alongside Ice and Linen.
ShieldCheck
Native Android app that audits security and privacy. It checks installed apps, device settings and network exposure, and shows the results on a security dashboard.
- Classifies app permissions by risk level
- Checks root status, encryption, screen lock and USB debugging
- Scans Wi-Fi security, VPN status and open ports
- Privacy score with scan history
PillTime
Fully offline medication reminder built with Kotlin Multiplatform and Compose Multiplatform. It fires an exact-time local reminder every day, with no accounts, no network and no cloud.
BingoGame
Real-time multiplayer 90-ball Bingo for Android and iOS. A Ktor WebSocket server runs on the caller's device, and players join rooms peer-to-peer by scanning a QR code.
HeapMonitor
Drop-in Android debug overlay that shows live JVM and native heap usage plus ART GC counters. Install it from JitPack with no code changes.
MapApp
Live location tracker. A device shares its GPS through Firebase Realtime Database, and anyone can follow broadcasting devices on Google Maps.
MindReading
Kotlin app built around a classic maths mind-reading trick. The user follows a number puzzle and the app reveals the predicted symbol with a polished, mystical UI.
ChessTimerApp
Professional chess clock with presets for bullet, blitz and rapid, increment and delay settings, and arbiter-style adjustments.
16+ Articles on Android & AI
I write about Android internals, concurrency and AI tooling on LinkedIn. Explaining a decision clearly is half of making it, and it's also how I mentor.
MasterCoroutines
A 10-chapter guide to Kotlin Coroutines, from the basics to structured concurrency.
LinkedIn ยท 6-part seriesKotlin Coroutines & Concurrency
A six-part series on coroutines, Flow and concurrency on Android.
LinkedIn ยท AI toolingRunning Claude Code for Free Using NVIDIA API
Guides to running Claude Code against alternative model APIs.
LinkedIn ยท InternalsAIDL, Binder IPC & the Choreographer
Deep dives into Android IPC, the frame pipeline and Android 14 Broadcast Receivers.
LinkedIn ยท ArchitectureDagger 2 & Compose vs XML
Practical notes on dependency injection and migrating from XML to Compose.
GitHub ยท Coursekotlin-mastery
Kotlin from zero to coroutines: runnable lessons, tested exercises and capstone projects.
Let's Build Together
I'm open to senior Android and mobile roles and ready to relocate (visa sponsorship required). I'm also open to consulting and interesting collaborations. I usually reply within 24 hours.