Senior Mobile Engineer

ShuttlersLagosroam-ngopublikowano 13.11.2026
Wymagane:KotlinSwiftFlutterGitAWSFrontendBackendMobileCI/CDAIFinTechSecuritySeniorLeadRemote

About Shuttlers

Shuttlers is a shared-mobility platform moving commuters across Lagos and Abuja. Our mobile apps are where riders book trips, track vehicles in real time and pay, so app quality shapes every rider's day.

Our Android and iOS apps are built in Flutter. We now need a senior engineer to raise the bar on how they are designed, tested and shipped.

The role

You will join one of our business-line squads (Daily, Rentals, Pod, Platform or Business Operations), working alongside a product manager and backend and frontend engineers. You will also work closely with the engineer responsible for our Mobile team to set shared standards across all our apps.

Your customers are our riders, drivers and partners. Your job is to ship the features they rely on every day and keep the apps fast, stable and secure.

This is a senior individual contributor role. You will lead technical design for mobile features, work as a peer alongside other senior engineers and stay hands-on in code every week. With a small team, we value pragmatic choices: proven packages, simple designs, and custom builds only where they clearly pay off. We expect you to use AI tools heavily to move fast, with human review on anything touching payments, location or security.

What you will doMobile engineering*

  • Own features end to end. Lead complex features across Android and iOS from technical design through release and monitoring in production.
  • Own outcomes, not just output. Instrument features with analytics, help define success metrics such as booking completion and payment success rate, and run experiments behind feature flags. Push back on scope that will not move the metric.
  • Shape the app architecture. Evolve state management, module boundaries and shared components so several squads can work in the same codebase without slowing each other down.
  • Lead large changes without freezing delivery. Plan and run migrations, such as package upgrades, state-management changes or modularisation, in small steps while squads keep shipping.
  • Own real-time experiences. Build reliable live vehicle tracking, maps and location features, with careful handling of battery, data usage and background limits on each platform.
  • Build for real networks. Design offline-tolerant flows, retries and caching for the networks and low-end Android devices many of our riders use.
  • Bridge to native. Write and maintain platform channels in Kotlin and Swift for location, notifications, payment SDKs and other platform features.
  • Handle payments safely. Build booking, checkout and wallet flows that degrade gracefully when payment providers, maps or SMS services fail.
  • Manage the long tail of app versions. Own the minimum-version and forced-update strategy, and agree API versioning with backend engineers so older apps in riders' hands keep working.
  • Stay ahead of platform changes. Own the yearly iOS and Android upgrade cycle, target SDK deadlines, privacy manifests and background-location approvals so releases are never blocked by store policy.
  • Build a shared component library. Work with designers on reusable components and accessibility standards, including screen readers, contrast and text scaling, so every squad ships a consistent experience.

Quality and reliability

  • Set the testing bar. Drive unit, widget and integration test coverage, and add automated end-to-end tests for core flows such as booking and payment.
  • Ship safely and often. Own mobile CI/CD and automate builds, tests, code signing and store releases. Use staged rollouts, feature flags and remote config so we can release frequently and roll back fast.
  • Enforce performance budgets. Set budgets for app size, cold start and memory, and check them in CI so regressions fail the build instead of reaching riders.
  • Measure app health. Track crash-free sessions, app start time, frame rendering and API latency, with alerts that catch regressions before riders notice.
  • Trace requests end to end. Connect app sessions to backend traces, for example by propagating OpenTelemetry context, so a slow booking can be followed from tap to database.
  • Fix at the root. Lead investigations into mobile incidents, run blameless post-incident reviews and make sure follow-up actions land.
  • Close the loop with users. Review store ratings, support tickets and crash reports regularly, and turn recurring problems into backlog items.
  • Protect rider data. Apply secure storage, safe handling of tokens and least-privilege permissions for location and payment data, in line with our ISO 27001-aligned SDLC.
  • Defend against abuse. Threat-model the apps and guard against GPS spoofing, tampered or rooted devices and reverse engineering, using certificate pinning, integrity checks and keeping secrets out of the app binary.

Leadership

  • Lead technical design. Write design documents for significant mobile changes and present them at the Engineering Architecture Review Committee.
  • Work as a peer. Give and receive rigorous design and code reviews with other senior engineers, and share what you learn across squads.
  • Lead how we use AI in development. Evaluate AI coding tools, set review standards for AI-generated code and share workflows that measurably speed the team up.
  • Partner across disciplines. Work with product managers, designers and backend engineers to shape requirements, API contracts and estimates.
  • Improve how we work. Find friction in the mobile development lifecycle and lead the fixes.

Our stack

We build cross-platform apps in Flutter, backed by services running on AWS.

Area

What we use

Mobile

Flutter and Dart, for Android and iOS

Native

Kotlin and Swift, via platform channels

Backend integration

RESTful APIs on our AWS-hosted services

Delivery

GitHub CI

Observability

OpenTelemetry, Firebase

Testing

Unit, widget and integration tests

Requirements What we are looking forMust have*

  • A degree in Computer Science, Software Engineering or a related field.
  • 5+ years of professional mobile engineering, including at least 3 years building production apps in Flutter and Dart.
  • A track record of shipping and maintaining apps with a large active user base on both the App Store and Google Play.
  • Deep understanding of Flutter internals, including the widget lifecycle, rendering, isolates and performance profiling with DevTools.
  • Strong experience with architecture and state management patterns such as BLoC or Riverpod, and with structuring large, modular codebases.
  • Hands-on native experience in Kotlin or Swift, including building platform channels or plugins.
  • Experience building location-heavy or real-time features, such as maps, live tracking, background location, WebSockets or push notifications.
  • Experience designing for unreliable networks and low-end devices, including offline support, caching, retries and app size control.
  • A strong testing practice across unit, widget and integration tests, with evidence of raising coverage or reducing regressions on a team.
  • Hands-on experience using CI/CD tooling such as Fastlane, Codemagic or GitHub Actions to automate builds, tests, code signing and store releases, along with staged rollouts and feature flags.
  • A record of measurably improving app performance or stability, with evidence such as higher crash-free rates or faster start times.
  • Experience integrating payment SDKs or handling sensitive data securely on device.
  • A record of leading technical design through written proposals and reviews, and of working well among strong senior peers.
  • Clear written and verbal communication with product, design and engineering peers.

Nice to have

  • Experience building native Android apps in Kotlin and native iOS apps in Swift.
  • Experience with deep linking, in-app updates or app store optimisation.
  • Experience with OpenTelemetry or other observability on mobile.
  • Experience building AI-assisted developer tooling or workflows.
  • Familiarity with the Nigeria Data Protection Act or GDPR.
  • Background in mobility, logistics, fintech or other real-time systems.
  • Open-source contributions in the Flutter ecosystem.

Your first 90 days

  • By day 30: you have the apps building locally and have shipped bug fixes and a small feature to production. You can explain the app architecture and data flow in a code review, and you have assessed the mobile test suite and release process and shared the highest-value fixes.
  • By day 60: you have independently delivered a complex feature in your squad, with tests and production monitoring in place. You have written and presented at least one mobile design document, and you review peer pull requests every week.
  • By day 90: you have led one measurable improvement to app quality, such as higher crash-free sessions, faster app start or test coverage above 80% on a core flow. One improvement to the mobile release process is also live.

<