Key Responsibilities
Design, build, and ship cross-platform apps for Android and iOS using Kotlin Multiplatform and Compose Multiplatform.
Develop native Android features with Kotlin and Jetpack Compose.
Integrate with iOS through Swift/SwiftUI interop, expect/actual declarations, and native SDKs where shared code isn't enough.
Maximize shared code (domain, data, networking, persistence) while keeping a native look and feel on each platform.
Build offline-first architectures with reliable sync, conflict resolution, and retry handling for payment-critical flows.
Implement secure networking and storage suitable for financial apps.
Create responsive, adaptive UIs for phones, tablets, foldables, and different screen densities.
Build scalable, testable codebases using clean architecture and modular design.
Profile and optimize startup time, rendering, memory, and battery use on both platforms.
Work with backend, QA, product, and design teams to deliver releases on the Play Store and App Store.
Required Skills & Experience
Core Technologies
Strong proficiency in Kotlin, including coroutines, Flow, and sealed classes.
Hands-on experience with Jetpack Compose: state hoisting, recomposition optimization, side effects, and navigation.
Proven experience with Kotlin Multiplatform / Compose Multiplatform in production, targeting both Android and iOS.
Working knowledge of the iOS ecosystem: Xcode, Swift basics, CocoaPods/SPM, provisioning, and signing.
Strong understanding of MVVM / MVI and unidirectional data flow.
Dependency injection: Dagger Hilt on Android, and Koin or kotlin-inject in shared KMP modules.
Hybrid / Cross-Platform Experience
Experience delivering hybrid or cross-platform apps on both Android and iOS.
Ability to decide what belongs in shared code and what should stay native.
Experience bridging native platform APIs: camera, biometrics, NFC, push notifications, and deep links.
Technical Expertise
Networking with Ktor Client (KMP) and Retrofit/OkHttp (Android), including interceptors, auth token refresh, and error handling.
Serialization with kotlinx.serialization.
Offline storage with SQLDelight (KMP), Room, or DataStore.
Lifecycle-aware state management and process-death handling on Android, plus state restoration on iOS.
Responsive UI with window size classes and adaptive layouts.
Security (Payments Domain)
Secure storage using Android Keystore and iOS Keychain.
SSL/certificate pinning, encrypted local data, and secure handling of tokens and sessions.
Biometric authentication on Android (BiometricPrompt) and iOS (Face ID/Touch ID).
Awareness of obfuscation (R8/ProGuard), root/jailbreak detection, and PCI-DSS principles.
Development Practices
Clean code, SOLID principles, and modular Gradle architecture.
Git workflows: branching, PR reviews, and conventional commits.
Testing:
Unit tests with JUnit, kotlin.test, MockK, and Turbine for Flow.
UI tests with the Compose UI Test framework and XCTest.
Debugging and profiling with Android Studio Profiler, Xcode Instruments, and LeakCanary.
Nice to Have
CI/CD for mobile: GitHub Actions or Bitrise, Fastlane, and automated Play Store / TestFlight releases.
Experience with Flutter or React Native.
Native iOS development with SwiftUI.
Material Design 3 and Apple Human Interface Guidelines.
Crash reporting and analytics with Firebase Crashlytics or Sentry.
Experience with payment SDKs or gateways, QR payments, or wallet integrations.
Published apps on the Google Play Store and Apple App Store.
Never pay anyone to apply for a job. If an employer asks you for money, please report it to us.