Senior Mobile Engineer (Kotlin Multiplatform / Native iOS & Android, Americas Remote, 1099)
Compensation estimateAI
See base, equity, bonus, and total comp estimates for this role — free, no credit card.
Sign up to see compensation estimateSenior Mobile Engineer (Kotlin Multiplatform / Native iOS & Android)
*Contract (1099), Remote – Americas time zones*
Role overview
You will design, build, and own the next generation of the ServiceFactor mobile app, with a strong focus on:
- Kotlin Multiplatform (KMP) shared business logic
- Native UIs on iOS (Swift/SwiftUI) and Android (Kotlin/Jetpack Compose)
- Offline‑first behavior and card‑present payments via Bluetooth devices
This is a hands‑on 1099 contract role with the expectation that you:
- Lead the architecture and greenfield implementation of the new app.
- Stay on as the primary owner for maintenance, iterative enhancements, and technical stewardship.
You’ll work directly with our CEO and Head of Engineering, and collaborate with our existing backend/web team.
What you’ll do
Architecture & greenfield build
- Design the overall mobile architecture: KMP shared modules, native UI layers, offline storage, sync engine, and integration with our REST APIs.
- Implement a local‑first data model (e.g., SQLDelight/Room/CoreData) for work orders, invoicing, customers, equipment, and time tracking.
- Create detailed design docs and architecture documents for review and approval by the Head of Engineering
Build and ship native UIs for:
- Job lists and detail workflows.
- Quotes, invoices, and signatures.
- Customer and equipment management.
- Time tracking and basic supervisor views.
- Integrate with our existing backend (Laravel/API) and authentication model, including token handling, secure storage, and session management.
Payments, Bluetooth, and reliability
- Implement card‑present payment flows using vendor‑specific SDKs on both iOS and Android.
- Integrate and manage Bluetooth payment devices and potentially other peripherals, using native stacks (CoreBluetooth / BluetoothGatt).
- Ensure all payment flows are PCI‑aware: no PAN/CVV handling in app code, secure token storage, and safe logging practices.
- Design for real‑world field conditions: intermittent connectivity, older/mid‑range Android devices, and long‑running sessions.
- Offline‑first and lifecycle
Quality, release, and long‑term ownership
- Establish automated testing (unit, integration, and key end‑to‑end flows) and a CI/CD pipeline for mobile builds.
- Set up crash and performance monitoring, logging, and metrics for the mobile apps.
- Own App Store / Google Play configurations, release process, and test builds (TestFlight / internal testing tracks).
- Document architecture and decisions (short design docs, ADRs, diagrams) so others can safely contribute over time.
- Act as the long‑term owner of the mobile codebase, working on iterative enhancements, performance tuning, and new features.
- Support pre-existing maintenance on legacy iOS and Android apps during the transition process
Who you are
Must‑have experience
- 6+ years of professional mobile development experience.
- 3+ years working with Kotlin in production, and at least 1+ year with Kotlin Multiplatform (KMP) or closely related shared‑logic patterns.
- Strong experience with native iOS (Swift, SwiftUI and/or UIKit) and native Android (Kotlin, Jetpack Compose and/or Views).
- Demonstrated experience building offline‑first mobile apps with:
- Local database, queued writes, and sync strategies.
- Conflict handling and robust error recovery.
- Solid experience integrating with REST/JSON APIs, authentication tokens, and secure storage (Keychain/Keystore, etc.).
- Hands‑on experience with Bluetooth integrations on at least one platform (CoreBluetooth or BluetoothGatt).
- Experience integrating payments or FinTech SDKs (card‑present and/or card‑not‑present) and working within PCI‑related constraints.
- Demonstrated experience at communicating technical architecture and design via engineering docs and diagrams and experience in working in a software design lifecycle (SDLC) process with review stages
- 3+ years of Mobile QA automation experience for writing code with automation tests
- 3+ years of Cloud experience (AWS preferred but not required)
Nice‑to‑have
- Prior work on field‑service, logistics, or other hardware‑heavy / offline‑heavy mobile apps
- Experience tuning performance on mid‑range and older Android devices.
- Familiarity with SQLDelight, Ktor, Koin, coroutines/Flows, and Swift interop tooling for KMP.
- Exposure to web stacks and how mobile and web share concepts and contracts.
Working style
- Owner mindset – you think in terms of product outcomes and long‑term maintainability, not just tickets.
- Comfortable designing from high‑level requirements, asking questions, and filling in the technical details.
- Able to explain trade‑offs and architecture choices clearly to a non‑mobile‑specialist audience.
- Pragmatic: you know when to ship a clean v1 and when to invest more deeply in abstraction or tooling.
Engagement details
- Type: 1099 contractor.
- Location: Remote, with strong overlap to US Central time; preference for engineers in US, Latam, Canada, or Americas.
Current engineering environment
- iOS: Swift, some Objective-C
- Android: Java
- Direction: Move to Kotlin Multiplatform for shared business logic (and separate native UIs or potentially shared UI if applicable)
- APIs: REST
- Backend: Laravel, PHP
- Cloud: AWS (light experience preferred)
Commitment:
- Initial 3-6 month intensive build to deliver the new app to production.
- Ongoing, part‑time or full‑time engagement for maintenance and iterative enhancements (to be mutually agreed).
- Compensation: Competitive hourly or day rate, commensurate with experience and location.
If you’re a senior mobile engineer who wants to own a critical app end‑to‑end, and you enjoy hard problems like offline‑first, Bluetooth hardware, and payments, we’d love to hear from you
Job Type: Contract
Application Question(s):
- What are your compensation expectations for hourly rate?
Experience:
- Mobile product development: 5 years (Required)
- Kotlin: 3 years (Preferred)
- Unit testing: 3 years (Required)
- AWS: 3 years (Required)
Work Location: Remote