Jasper Lin Senior Mobile Engineer
Chicago, IL • mobileeng@gmail.com • +1 312-555-0176
Profile Summary
- Senior Mobile Engineer with 8 years of experience building iOS and Android apps for food ordering, loyalty, and car shopping apps, with a focus on shared Kotlin code, offline ordering, and safe weekly releases.
- Builds with languages (Kotlin, Swift), UI (Jetpack Compose, SwiftUI), shared code (Kotlin Multiplatform), data (GraphQL, SQLDelight), and release and monitoring (LaunchDarkly, Firebase Crashlytics), following Apple’s Human Interface Guidelines and Material Design.
- Strongest in Kotlin Multiplatform modules, offline-first ordering, release trains, and crash triage, using flag-guarded rollouts and one feature spec for both platforms to ship new features on iOS and Android in the same release.
- Works closely with product, design, backend, QA, and the restaurant systems team in a global app team serving dozens of markets, from feature specs and API design to store review and the release go/no-go call.
- Senior engineer who holds the line on crash-free rates and shared test coverage in code review, runs the biweekly mobile architecture review, and writes the setup guides new mobile hires use in their first week.
Technical Skills
- Languages:
- Kotlin, Swift, TypeScript, Java, Objective-C
- iOS & Android UI:
- Jetpack Compose, SwiftUI, UIKit, Material 3, VoiceOver, TalkBack
- Cross-Platform & Shared Code:
- Kotlin Multiplatform, SKIE, Ktor, React Native
- Architecture & Concurrency:
- MVVM, MVI, Kotlin Coroutines, Kotlin Flow, Swift Concurrency, Koin, Gradle modules
- Data & APIs:
- GraphQL, REST APIs, SQLDelight, Room, Core Data, Apollo Kotlin
- Testing & CI/CD:
- JUnit, XCTest, Maestro, Espresso, Firebase Test Lab, Bitrise, Fastlane
- Release & Monitoring:
- App Store Connect, Google Play Console, Firebase Crashlytics, LaunchDarkly, Android vitals
Education
Work Experience
- Built the curbside and drive-thru order pickup flow of the McDonald’s app in Jetpack Compose and SwiftUI from one shared spec, shipping both platforms in the same release with TalkBack and VoiceOver support, now used for 41% of mobile orders.
- Moved cart, pricing and offer rules into 6 Kotlin Multiplatform modules used by both apps, exposed to Swift through SKIE, cutting pricing mismatch bugs between iOS and Android from 14 to 2 a quarter.
- Split the ordering code into 22 feature modules on both platforms (Gradle modules and Swift packages) with MVVM view models and Koin injection, so 4 squads could ship on their own, cutting median time to merge from 3 days to 1 day.
- Built an offline order queue on SQLDelight with retries and idempotency keys, plus a GraphQL menu query shaped around the mobile screens, cutting failed orders on weak connections from 2.9% to 0.8%.
- Ran the weekly release train for both apps, with phased App Store releases, staged Google Play rollouts and LaunchDarkly kill switches on every new feature, shipping 46 releases in 2025 with 0 full rollbacks.
- Set up release health dashboards in Firebase Crashlytics and Android vitals with alerts per app version, then fixed the top crash and ANR clusters, raising crash-free users from 99.2% to 99.8% on both platforms.
- Wrote Maestro flows for ordering and checkout that run on both apps, plus JUnit and XCTest suites for the shared modules, with nightly runs on 30 Firebase Test Lab devices that caught 19 release blockers before submission.
- Moved both app pipelines to Bitrise with remote build caching and one shared Gradle and Xcode setup, cutting CI time per pull request from 38 minutes to 14 minutes for 60 mobile engineers.
- Rebuilt car search results in Jetpack Compose on Android and UIKit on iOS, and added saved searches with push alerts for price drops, now used by 18% of active shoppers.
- Moved the Android app from Java to Kotlin with coroutines over 9 months, taking network and image work off the main thread and cutting the ANR rate from 0.61% to 0.24%.
- Added Espresso and XCUITest checks for search, listing and dealer contact to the Jenkins pipeline on every pull request, cutting hotfix releases from 5 to 1 a quarter.