{"id":4226233,"url":"https://alion.io/job/shuttlers-senior-mobile-engineer","title":"Senior Mobile Engineer","company":{"id":62375,"name":"Shuttlers","domain":"shuttlers.co","url":"https://alion.io/company/shuttlers","size_band":null,"is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"Zoho Recruit","truth_index":null},"role":"Mobile","role_family":"Mobile","seniority":"senior","employment_type":"full_time","work_mode":"on_site","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Nigeria"],"countries":["NG"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"CI/CD","optional":false},{"name":"Codemagic","optional":false},{"name":"Dart","optional":false},{"name":"Fastlane","optional":false},{"name":"Flutter","optional":false},{"name":"GitHub","optional":false},{"name":"GitHub Actions","optional":false},{"name":"ISO 27001","optional":false},{"name":"Kotlin","optional":false},{"name":"Least Privilege","optional":false},{"name":"OpenTelemetry","optional":false},{"name":"Riverpod","optional":false},{"name":"State Management","optional":false},{"name":"Swift","optional":false},{"name":"WebSockets","optional":false},{"name":"AWS","optional":true},{"name":"Deep Linking","optional":true},{"name":"Firebase","optional":true},{"name":"GDPR","optional":true},{"name":"Rest API","optional":true}],"status":"live","first_seen_at":"2026-11-13T00:00:00Z","employer_posted_date":null,"last_verified_at":"2026-11-13T00:00:00Z","board_verified":false,"closed_at":null,"days_open":0,"trust":{"level":"not_scored","repost_count":null,"flags":[],"days_open":0},"description":"About Shuttlers\n\nShuttlers 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. \n\nOur 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. \n\nThe role\n\nYou 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. \n\nYour 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. \n\nThis 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. \n\nWhat you will do\nMobile engineering\n\n Own features end to end. Lead complex features across Android and iOS from technical design through release and monitoring in production. \n\n 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. \n\n 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. \n\n 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. \n\n 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. \n\n Build for real networks. Design offline-tolerant flows, retries and caching for the networks and low-end Android devices many of our riders use. \n\n Bridge to native. Write and maintain platform channels in Kotlin and Swift for location, notifications, payment SDKs and other platform features. \n\n Handle payments safely. Build booking, checkout and wallet flows that degrade gracefully when payment providers, maps or SMS services fail. \n\n 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. \n\n 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. \n\n 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. \n\nQuality and reliability\n\n 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. \n\n 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. \n\n 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. \n\n Measure app health. Track crash-free sessions, app start time, frame rendering and API latency, with alerts that catch regressions before riders notice. \n\n 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. \n\n Fix at the root. Lead investigations into mobile incidents, run blameless post-incident reviews and make sure follow-up actions land. \n\n Close the loop with users. Review store ratings, support tickets and crash reports regularly, and turn recurring problems into backlog items. \n\n 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. \n\n 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. \n\nLeadership\n\n Lead technical design. Write design documents for significant mobile changes and present them at the Engineering Architecture Review Committee. \n\n Work as a peer. Give and receive rigorous design and code reviews with other senior engineers, and share what you learn across squads. \n\n 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. \n\n Partner across disciplines. Work with product managers, designers and backend engineers to shape requirements, API contracts and estimates. \n\n Improve how we work. Find friction in the mobile development lifecycle and lead the fixes. \n\nOur stack\n\nWe build cross-platform apps in Flutter, backed by services running on AWS. \n\nArea \n\nWhat we use \n\nMobile \n\nFlutter and Dart, for Android and iOS \n\nNative \n\nKotlin and Swift, via platform channels \n\nBackend integration \n\nRESTful APIs on our AWS-hosted services \n\nDelivery \n\nGitHub CI \n\nObservability \n\nOpenTelemetry, Firebase \n\nTesting \n\nUnit, widget and integration tests\n\nRequirements\nWhat we are looking for\nMust have\n\n A degree in Computer Science, Software Engineering or a related field. \n\n 5+ years of professional mobile engineering, including at least 3 years building production apps in Flutter and Dart. \n\n A track record of shipping and maintaining apps with a large active user base on both the App Store and Google Play. \n\n Deep understanding of Flutter internals, including the widget lifecycle, rendering, isolates and performance profiling with DevTools. \n\n Strong experience with architecture and state management patterns such as BLoC or Riverpod, and with structuring large, modular codebases. \n\n Hands-on native experience in Kotlin or Swift, including building platform channels or plugins. \n\n Experience building location-heavy or real-time features, such as maps, live tracking, background location, WebSockets or push notifications. \n\n Experience designing for unreliable networks and low-end devices, including offline support, caching, retries and app size control. \n\n A strong testing practice across unit, widget and integration tests, with evidence of raising coverage or reducing regressions on a team. \n\n 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. \n\n A record of measurably improving app performance or stability, with evidence such as higher crash-free rates or faster start times. \n\n Experience integrating payment SDKs or handling sensitive data securely on device. \n\n A record of leading technical design through written proposals and reviews, and of working well among strong senior peers. \n\n Clear written and verbal communication with product, design and engineering peers. \n\nNice to have\n\n Experience building native Android apps in Kotlin and native iOS apps in Swift. \n\n Experience with deep linking, in-app updates or app store optimisation. \n\n Experience with OpenTelemetry or other observability on mobile. \n\n Experience building AI-assisted developer tooling or workflows. \n\n Familiarity with the Nigeria Data Protection Act or GDPR. \n\n Background in mobility, logistics, fintech or other real-time systems. \n\n Open-source contributions in the Flutter ecosystem. \n\nYour first 90 days\n\n 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. \n\n 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. \n\n 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.\n\n<","description_format":"text","description_chars":8952,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[]},"benefits":[],"hiring_locations":[],"hiring_excludes":[],"relocation_offered":false,"industries":["Public Transport","Shared Mobility"],"lifecycle":[{"event":"open","at":"2026-11-13T07:54:40Z"}],"visa":[],"liveness":{"score":86,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.86,"p_room":1,"age_days":0,"expected_fill_days":30,"reasons":["seen:0","win:early"],"computed_at":"2026-11-13T11:10:15Z"},"pay":null,"html_url":"https://alion.io/job/shuttlers-senior-mobile-engineer","json_url":"https://alion.io/job/shuttlers-senior-mobile-engineer.json","meta":{"generated_at":"2026-11-13T11:10:15Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":22544,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-14T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.1,"usd":0.01,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":62375},"rest":"https://alion.io/mcp/rest/get_company?id=62375"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fshuttlers-senior-mobile-engineer"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"free","price":{"credits":0,"usd":0},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Fshuttlers-senior-mobile-engineer"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.1,"usd":0.01},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Fshuttlers-senior-mobile-engineer"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/shuttlers-senior-mobile-engineer\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fshuttlers-senior-mobile-engineer"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":4226233}},{"tool":"search_jobs","arguments":{"company":"shuttlers.co","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":4226233},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}