iOS · Android · Flutter · React Native
I bring 10+ years in mobile engineering, combining commercial app delivery with native and cross-platform development, architecture, testing, performance and release work.
Open to remote senior mobile roles, long-term contracts and focused freelance projects.
Currently at LYNKTO · Previously remote with UgoRound Australia · Dhaka, Bangladesh (UTC+6)
Discuss a role or project · Portfolio website
| Platform | Engineering focus | Work you can review |
|---|---|---|
| iOS — Swift, SwiftUI, UIKit | Features, concurrency, persistence, memory and release engineering | Commercial delivery, merged upstream fixes, FlowMoney |
| Android — Kotlin, Jetpack Compose | Native UI, background behavior and reusable architecture | UgoRound location work, Attendance HR |
| Flutter — Dart, Riverpod | Modular Clean Architecture, design systems and testable repositories | Flutter Task Manager, case study |
| React Native — TypeScript, Expo | Shared UI, server/client state and native integration | Four-app portfolio suite, public native bridge |
Read the complete case studies → · Download the portfolio PDF
- Commercial iOS & Android delivery — reusable UI, navigation, testing and production maintenance at LYNKTO.
- Background location & geo-alerting — movement-aware geofence checks and remote mobile delivery for UgoRound.
- Flutter architecture — Riverpod, local packages, Material 3 and optional Firebase repositories.
- React Native app suite — four fixture-backed demos with shared foundations, state boundaries and testing tools.
- RTLS native SDK & integration — location, persistence and synchronization with Flutter/React Native bridges.
- Merged open-source fixes — concurrency, cache I/O and memory management in Kingfisher and Firefox for iOS.
Each case explains the problem, my contribution, technical choices, tradeoffs, outcome and evidence. Commercial work and portfolio demos are identified explicitly.
Selected fixes in established iOS projects:
- Kingfisher #2539: fixed a task-cancellation data race in
SessionDataTask.forceCancel(). - Kingfisher #2556: removed a redundant file-existence lookup when reading disk-cache metadata. Both changes are credited in the 8.11.0 release notes.
- Firefox for iOS #34675: fixed a
BoolSettingretain cycle leakingAppSettingsTableViewControllerand added a regression test.
More upstream pull requests
- #34569 Widgets: the widget now waits for tab restoration before it closes private tabs, which fixes a state race
- #34809 Dead code: removed unused
TabManagercode that Periphery flagged - #34568 Logging: separated how fatal and non-fatal logs are reported
- #34553 Tests: telemetry tests now compare objects by identity (
===) instead of equality - #2541 Concurrency: fixed a data race on
RetrievingContext.propagationErrors - #2561 Memory: the image view is now released while its download is still in progress
- #2540 Bug fix: disk caching now works when the image URL path contains
@
Explore my libraries and app projects below. Commercial applications are listed separately.
| Project | Platforms | What it demonstrates | Screenshots / Video |
|---|---|---|---|
| FlowMoney: Offline-first Personal Finance | iOS · Supabase | 16-module SwiftUI app in Swift 6 strict concurrency. Offline ledger sync that preserves edits during in-flight uploads, deterministic recurring transactions, exact integer-based money calculations, budgets and analytics, Supabase RLS, 100+ tests, and CI/CD to TestFlight. | ![]() Screenshots |
| NovaShop: Offline-first E-commerce | iOS · Supabase | 18-module SwiftUI app in Swift 6 strict concurrency. Local-first cart with state-based sync and reconciliation, a transactional server checkout (Row Level Security, idempotency keys), and launch, CPU and leak profiling on device with Instruments. 115 tests | ![]() Screenshots |
| SwiftHilt | Swift | Dependency injection library that is DAG-aware and inspired by Hilt: scopes, graph validation, test overrides | — |
| AsyncSwiftyNetworking | Swift | async/await networking layer: typed endpoints, retries, interceptors, automated tests | — |
| RTLS: Offline-first Location Sync SDK | iOS · Android · Flutter · RN | Modular telemetry SDK: GPS collection, a persistent offline queue, WebSocket real-time sync, pick-only-what-you-need modules | — |
| Attendance HR (Android) | Android | Compose + clean architecture, multi-module, CI | — |
More projects and SDK demonstrations
| Project | Platforms | What it demonstrates | Screenshots / Video |
|---|---|---|---|
| ChatApp (ConvoKit): Native Chat SDK Source currently private |
iOS · Android · Flutter (iOS bridge) | Backend-agnostic SDK with native SwiftUI and Jetpack Compose UIs. Actor / coroutine-based offline outbox, SQLite caching and message search, direct and group chat, invitations, streaming AI, and Supabase RLS. Flutter wraps the native iOS SDK. | ![]() Screenshots · Video |
| KinBeacon: Family Safety & Parental Controls Source currently private |
iOS · Supabase | 30-module SwiftUI app in Swift 6 strict concurrency. Battery-aware background location and safe places, Apple Screen Time schedules with four extensions, check-ins and SOS, APNs remote commands, and a durable SwiftData outbox. Parent and child device pairing with RLS-protected family data. | Screenshots / live gallery |
| PlaceAlertMe | iOS | Background geofencing and location-based alerts | — |
| TDD High-Performance E-commerce | iOS | Test-driven SwiftUI with a focus on rendering performance | — |
Selected commercial apps I worked on for clients and employers:
| App | Highlights | Link |
|---|---|---|
| AISocial – AI Assistant | LLM chat, PDF summarization, subscriptions, Share Extension, Widgets, Firebase, modular SPM, unit/UI/snapshot tests, CI | App Store |
| Alloy Sports – Betting Companion | Subscriptions, modular architecture, snapshot tests, GitHub Actions CI | App Store |
| Davi & Dani – Wholesale Shop | E-commerce, payments, offline catalog (Core Data) | App Store |
| Adora Los Angeles | E-commerce, payments | App Store |
| Mello USA | E-commerce, Stripe | App Store |
| StylePick | E-commerce, Stripe | — |
| Wholesale Scan | Barcode/QR scanning, business-card OCR with Gemini, PDF printing, server sync | Internal |
iOS: Swift 6 · SwiftUI · UIKit · Swift Concurrency · Combine · Core Data / SwiftData · SPM modularization · WidgetKit · Extensions · StoreKit Android: Kotlin · Jetpack Compose · Coroutines / Flow · Hilt · Room · WorkManager · multi-module Gradle Cross-platform: Flutter · Dart · Riverpod · React Native · TypeScript · Expo · TanStack Query · Zustand Quality & delivery: XCTest / swift-testing · JUnit · snapshot & UI tests · TDD · GitHub Actions · Fastlane · SwiftLint / ktlint
- Architecture first: modular (SPM / Gradle multi-module), unidirectional data flow, clear domain boundaries, and DI that stays testable.
- Tests I trust: TDD where it pays off, plus snapshot tests for UI and CI that gates every PR.
- Background and offline: geofencing, background location, sync queues that survive process death and a bad network.
- Shipping: I own releases (signing, TestFlight / Play tracks, phased rollouts, crash monitoring).
- Sharing: knowledge and reusable libraries (SwiftHilt, AsyncSwiftyNetworking, Swift design patterns).
Hiring or planning an app project? Reach me on LinkedIn








