Cross-platform mobile apps
Flutter for iOS and Android from one codebase — auth, in-app payments, maps, push, offline state. Shipped to both stores and through review.
Nine years building production software, six of them in Flutter, four as a mobile team lead. I specialise in mobile: cross-platform apps in Flutter and Dart, dropping to native Swift and Kotlin where the platform SDK demands it — maps, in-app payments, secure auth, push, deep links and realtime data, plus the release pipeline that gets a build past store review. Live on both stores across Singapore, the US and Europe. Web and backend when the product needs them — TypeScript/Next.js, Firebase, Node.
Hire me directly — no agency, no markup. I run my own contracts, invoicing and paperwork, so the budget goes into the build instead of a middleman.

Flutter for iOS and Android from one codebase — auth, in-app payments, maps, push, offline state. Shipped to both stores and through review.
Method channels and native plugins where Flutter alone can’t reach the SDK: secure auth, platform maps, device APIs.
Firebase Auth, Realtime Database, Firestore and Cloud Functions, plus Node/TypeScript services. Schema, security rules, migrations.
TypeScript, React and Next.js, statically exported onto Firebase Hosting. This site and nghia.tech run on it.
Unit, widget and integration tests in Flutter, plus end-to-end runs on real devices in CI — so a regression fails the build, not the store release.
CI/CD into TestFlight and Play Console, staged rollouts, crash monitoring, and getting builds through store review.
Solid black = daily driver, shipped to production. Outlined = used in delivered work, comfortable in a codebase.
See more in the CV.
Email is fastest — send the problem and I’ll reply with how I’d approach it, usually the same day. Or book 30 minutes directly.