Available for work Dhaka / Bangladesh Portfolio / MMXXVI
I.Feature / Transit001 / 005
Open Source Contributions

Contributing to MRT Buddy: Flutter to KMP.

My journey contributing to MRT Buddy, a local-first travel app in Bangladesh, moving from Flutter to a shared KMP codebase and developing face recognition systems.

By Irfan Hasan / Mobile Developer Published February 2025 / 8 min read
MRT Buddy App Collage
FIG. 01 / Mobile Transit UI
II.Article / System Map002 / 005

01. Transit utility: open source in Dhaka.

MRT Buddy is one of the most widely used local transit helper utilities in Bangladesh, assisting commuters with Metro Rail timings, ticket calculators, and route planners. Working closely with the developer community, we focused on modularizing travel operations and minimizing load times.

Contributing to public transit software in a rapidly developing metropolis requires a strong focus on utility and local conditions—especially network dropouts.

02. The Kotlin Multiplatform shift: reusing core logic.

To reduce development friction across platforms, we migrated the shared routing, database schema mappings, and status state machine layers from Flutter to Kotlin Multiplatform (KMP). This allows the application core to compile cleanly to native libraries for both Android and iOS while preserving a unified logic state.

Shared codebases are only as strong as their boundaries. By decoupling platforms from business logic using native interfaces, we kept platform-specific layout modules clean and fast.

Kotlin Multiplatform brings native performance and real reuse to transit routing utilities.

03. Face recognition & biometrics integration.

Beside routing, we developed and integrated a lightweight face recognition service powered by Flask, OpenCV, and deep learning algorithms. It serves as a proof-of-concept for biometric ticket validations at virtual terminal gates.

This implementation won national awards at innovation showcases, demonstrating that edge biometrics can integrate directly into mobile application runtimes.

04. Local routing & offline route calculation.

Commuters use transit systems deep underground or inside heavy structures where cellular signal is weak. By embedding route paths directly inside the client SQLite bundle, MRT Buddy calculates transit stops, pricing, and alternate paths entirely local-first without contacting any server.