This job has been added to your Saved jobs.
You have reached the limit of 20 Saved Jobs. If you want to create a new one, please manage your Saved Jobs.
Top 3 reasons to join us
- International fintech & digital banking firm
- Top salary, bonus & stock options
- Work & travel globally with innovation teams
Job description
Role Summary
Vietpay is hiring a Senior Mobile Developer who is Flutter-first but comes from a strong native mobile engineering background. You have built and shipped production applications on iOS or Android at a professional level, and you bring that depth of platform knowledge into your Flutter work. Engineers who have transitioned from native iOS development are strongly preferred — that foundation of understanding how the platform actually works, how builds are configured, how signing and distribution operate, and how native APIs behave, is what separates good Flutter engineers from great ones. You will own the full mobile delivery lifecycle at Vietpay: architecture, feature development, build and release operations, dependency governance, and continuous technical improvement. You take personal accountability for the products you work on and always push toward better engineering.
Key Responsibilities
1) Flutter Development
- Build and maintain production Flutter features using Dart, following Clean Architecture with BLoC or equivalent state management.
- Make sound architectural decisions in the Flutter layer: navigation, state management, platform channels, and native integration.
- Write platform channel integrations when Flutter needs access to native iOS or Android capabilities not covered by existing plugins.
- Maintain Flutter code quality: proper widget decomposition, no business logic in UI, testable BLoCs, and clean dependency injection.
- Stay current with Flutter SDK releases and Dart language updates, proactively adopting improvements that benefit the codebase.
2) Native Mobile Knowledge Applied to Flutter
- Leverage native platform knowledge to debug Flutter issues that surface at the platform layer: build errors, signing failures, native plugin conflicts, and platform-specific rendering behaviour.
- Understand what Flutter abstracts away and what it does not — and know when to drop into native code to solve a problem correctly.
- Apply native architecture instincts — clean layer separation, testability, lifecycle awareness — to Flutter codebase decisions.
- Recognise platform-specific performance characteristics and apply the right fix at the right layer, whether Dart, platform channel, or native.
3) iOS App Setup, Build Configuration, and Distribution
- Own Flutter project setup for iOS: bundle IDs, entitlements, Info.plist configuration, and environment-specific build settings.
- Configure and manage iOS signing: certificates, provisioning profiles, and App ID setup in Apple Developer Portal.
- Set up and maintain App Store Connect: app records, TestFlight distributions, and App Store submissions.
- Manage iOS build tooling and automation: Fastlane lanes for building, signing, testing, and distributing; integration with CI/CD pipelines.
- Configure and manage iOS dependency tooling: CocoaPods and Swift Package Manager as required by Flutter plugins — including version pinning and conflict resolution.
- Manage Flutter flavor and build variant configuration: bundle IDs per environment, build configs, and native bridging for both iOS and Android.
4) Release Management and Operations
- Own the end-to-end release pipeline: from branch to signed build to TestFlight or internal track to store submission.
- Manage App Store review submissions: metadata, screenshots, compliance answers, and resolving reviewer rejections.
- Coordinate with DevOps on CI/CD pipelines that run builds, tests, and distributions automatically on the right triggers.
- Monitor production releases: crash rates, performance regressions, and ANRs via crash reporting and analytics tooling; respond to incidents promptly.
- Maintain changelogs, release notes, and version tracking disciplines across environments.
5) Architecture and Code Quality
- Define and enforce mobile architecture standards across the codebase: folder structure, layer separation, naming conventions, and dependency direction.
- Conduct thorough code reviews focused on correctness, maintainability, security, and alignment with project conventions.
- Write unit tests, widget tests, and integration tests that give genuine confidence in behaviour, not just coverage numbers.
- Identify and address architectural drift before it compounds: refactor proactively rather than building on fragile foundations.
- Document key decisions, patterns, and setup procedures so that the codebase is approachable by any competent engineer, not dependent on tribal knowledge.
6) Dependency and Package Governance
- Own the Flutter dependency graph: audit third-party packages for security, maintenance status, licence compliance, and API stability before adoption.
- Define upgrade policies: keep dependencies current on a schedule, not reactively, and pin versions with documented reasons for exceptions.
- Maintain a managed pub upgrade process: test every upgrade against the full app before merging, document breaking API changes.
- Remove unused dependencies promptly; avoid bloat that inflates binary size or build times.
7) Security and Fintech Compliance
- Apply mobile security best practices: Keychain for credentials, certificate pinning for API communication, jailbreak and root detection, and secure data storage.
- Ensure the app meets financial services compliance requirements: session management, transaction confirmation flows, sensitive data handling, and audit logging of security-relevant actions.
- Follow App Store privacy guidelines rigorously: accurate data usage declarations, permission usage strings, and privacy manifest compliance.
- Never store sensitive financial or user data in plaintext, logs, or insecure storage.
8) Accountability, Ownership, and Continuous Improvement
- Take full ownership of the features and systems you build — not just until the PR merges, but in production, through incidents, and across the full product lifecycle.
- Proactively identify technical debt, performance bottlenecks, and UX friction in the codebase before they become user-facing problems; propose and execute improvements without waiting to be asked.
- Hold yourself to a higher standard than "it works": consider performance, edge cases, accessibility, error states, and long-term maintainability as non-negotiable parts of done.
- Raise concerns early: if a product decision will create technical problems, say so clearly and propose alternatives — not to block delivery, but to protect product quality.
- Continuously learn: follow platform releases, community best practices, and industry patterns in fintech mobile; bring relevant improvements back to the team with a concrete rationale.
- Treat the product as your own: care about the user experience, the crash rate, the App Store rating, and the release cadence as a founder would.
Your skills and experience
Job Requirements
- Must be fluent in English (spoken and written)
- 5+ years of professional mobile development experience with at least one shipped production app.
- Strong background in native mobile development — iOS (Swift) or Android (Kotlin/Java) — at a professional, production level.
- Solid Flutter and Dart skills with experience delivering a production Flutter application.
- Strong understanding of mobile architecture: Clean Architecture, MVVM, or equivalent applied consistently across a real codebase.
- Hands-on experience with mobile build configuration, signing, and CI/CD distribution pipelines.
- Experience writing unit, widget, and integration tests with genuine coverage of business-critical paths.
- Demonstrable ownership mindset: able to point to specific examples of proactively improving product quality beyond assigned tasks.
- Strong English communication skills; comfortable raising technical concerns clearly with product and engineering stakeholders.
Preferred Qualifications
- Native iOS background (Swift, Xcode, UIKit or SwiftUI) is strongly preferred over Android.
- Hands-on experience managing iOS signing end to end: Apple Developer Portal, certificates, provisioning profiles, and Xcode signing settings.
- Proven experience with App Store Connect: submissions, TestFlight, metadata management, and resolving review rejections.
- Experience with iOS dependency management using Swift Package Manager and CocoaPods.
- Experience in fintech, banking, payments, or other regulated mobile applications.
- Experience with Flutter platform channels and native iOS or Android integration.
- Familiarity with mobile security tooling: certificate pinning, jailbreak detection, and secure enclave usage.
- Experience with crash reporting and mobile observability tooling: Firebase Crashlytics, Sentry, or equivalent.
- Experience setting up Flutter flavor configurations across multiple environments.
- Familiarity with App Store privacy manifest requirements and data usage declarations.
Tools and Working Methods
- Flutter: Dart, Flutter SDK, BLoC or equivalent state management, flutter pub, platform channels, flavor configuration.
- Native reference: Swift/Xcode (iOS) or Kotlin/Android Studio (Android) for platform-layer debugging and native plugin work.
- Distribution: App Store Connect, TestFlight, Fastlane, Firebase App Distribution.
- CI/CD: GitHub Actions, Bitrise, or equivalent pipeline tooling.
- Observability: Firebase Crashlytics, Sentry, or equivalent crash and performance monitoring.
- Collaboration: Jira, Confluence or Notion, Git-based workflows with clear PR descriptions and decision documentation.
Why you'll love working here
- International fintech & digital banking firm
- Top salary, bonus & stock options
- Work & travel globally with innovation teams
- Social insurance based on full salary
- Full Training will be provided to Candidate
Vietpay Corporation