I build mobile systems that hold up in production.
Senior Flutter engineer with 6 years shipping across telecom, fintech, fuel retail, and logistics, from offline-first fleet platforms to e-wallets and telecom super apps. I own the architecture-to-release arc: native integrations, CI/CD, and multi-store deployment.
Selected work
FolloTrac: from a 12-year-old Kotlin app to a cross-platform, offline-first rewrite
FolloTrac is a 12-year-old Android-only app (Kotlin) that tracked field crews with no offline support and no way to verify work without a phone call. Over a ~5-month epic, our three-person team rewrote it in Flutter for Android and iOS. It started with FolloCrew, a phone companion I built so drivers — working from a tablet mounted in the truck — could capture before/after photos of snow-removal work on the go. From there, I took ownership of the architecture, the offline-first approach, and geofence-based visit tracking: detecting hands-free when a driver enters an active contract zone, logging dwell time, and syncing it to the backend to catch mismatches on completed jobs. The result, FolloTrac 3.0, added turn-by-turn navigation, automatic coverage tracking, a loss-proof offline sync engine, and real-time visibility for supervisors across the fleet.
Offline wasn’t a feature here, it was the reason the migration existed. Every write happens locally first and is treated as the source of truth until sync reconciles it, so a driver in a dead zone never sees a spinner, an error, or lost work.



OOMCO: Building the mobile platform behind Oman’s national fuel retailer
Oman Oil (OOMCO) is a large-scale enterprise mobile application powering the digital experience for Oman Oil Marketing Company. The app combines secure payments, loyalty rewards, NFC fuel transactions, POS integration, and station services into a single platform available on iOS, Android, and Huawei devices. I led the Flutter development across two major releases (v4 and v5), modernizing the architecture, building key customer-facing features, and driving the platform’s technical evolution. Today, I continue to lead its expansion into the Saudi Arabian market.
The POS terminal wasn’t one device, it was four, one per partner bank (Oman Arab Bank, Sohar Bank, Ahli Bank, Bank Muscat), each shipping its own hardware and proprietary SDK with no Flutter support. I built a Platform Channel abstraction that normalized all four into a single interface, so attendants got the same payment flow and design system no matter which bank’s terminal was plugged in.

Raaz: a personal finance app that reads your money for you
Raaz is a personal finance application that helps users manage their finances by aggregating bank accounts, categorizing transactions, and providing AI-powered financial insights. I contributed to the Flutter application by building core features, improving the architecture, integrating platform services, and supporting releases across iOS and Android.
My Ooredoo, inheriting a super app
My Ooredoo is the consumer super app for Ooredoo’s subscriber base, built and operated by an external vendor. I led its technical handover: in-depth code audits, architectural review, and the comprehensive documentation that turned a vendor dependency into an asset the internal team fully owns.

Inheriting a vendor-built super app is archaeology: I audited it screen by screen, mapped the architecture as it actually was — not as documented — and produced the improvement roadmap the internal team still builds against.
How I work when nobody’s watching the code
Offline-first & real-time by design
Field apps that keep working in dead zones; fleets that talk over Pusher; sync that reconciles instead of losing writes. Connectivity is an optimization, not a requirement.
Native when Flutter ends
Platform Channels to Apple Watch apps, POS terminals, OCR and face-matching SDKs. Cross-platform doesn’t mean lowest-common-denominator.
Release engineering as a product
Codemagic pipelines, Flutter Flavors per environment, automated deployment to Apple, Google Play, and Huawei AppGallery. Shipping is boring on purpose.
Quality as culture, not a phase
Introduced TDD at FoxCod, established code-review standards, automated UI testing with Maestro. Quality practices that outlive any single project.
Systems over screens
Built a reusable Flutter design system and component library that accelerated every app after it. Clean Architecture as the default, not the aspiration.
Leading through leverage
Mentoring developers, auditing inherited codebases, writing the documentation that makes handovers survivable, and negotiating architecture tradeoffs directly with clients.