Ehsanul Hoque
Mobile Application Development Engineer
Dhaka, Bangladesh
About
I've spent five years shipping Android apps in Kotlin and Java — real-time chat over WebSocket, WebRTC voice calls, in-app billing on Google and Huawei, offline sync, encrypted downloaders, custom views, and the unglamorous infra that keeps the apps stable in the hands of users on a thousand different phones.
Currently shipping for Numrah (remote from Dhaka), where I've built two Android apps from scratch and helped pull a legacy Kotlin app from a 2.5-star rating up to 4.5 by chasing crashes and migrating it from RxJava to Coroutines and Flow. Before that, two product orgs in Dhaka — native Android, Flutter cross-platform, an app that crossed a million users.
I like the boring half of the work: the WebSocket reconnect that survives a dropped connection, the encrypted downloader that streams chunks without spiking RAM on a budget phone, the Gradle plugin you can delete to cut build times in half, the Python script that automates the release. I write here occasionally about what I learn — the notes are mostly for future me, but you're welcome to read them.
Off-keyboard: long walks across Dhaka, slow coffee, and the occasional half-finished side project that taught me something useful before it died.
Stuff I work with
A working list, updated when it stops being true.
- Kotlin
- Java
- Python
- TypeScript
- Dart
- Coroutines + Flow
- Jetpack Compose
- Hilt / Dagger 2
- Room
- Jetpack Navigation
- RxJava
- WebRTC
- WebSocket
- ExoPlayer
- Background services
- Push notifications
- Lottie
- Firebase / Firestore
- Cloud Functions
- Node + Express
- REST APIs
- Statsig
- Gradle (Kotlin DSL)
- Fastlane
- GitHub Actions
- Play Console
- Huawei AppGallery
- Crashlytics
- Google + Huawei Billing
- A/B testing
- MVVM + Clean Architecture
- JUnit + Mockito + Appium
- Kotlin Multiplatform
- Flutter