cityflo / careerssign in →
Mobile Engineering · Mumbai (on-site) · Full-time

iOS Engineer

Own the Cityflo iOS app end-to-end — live tracking, booking, payments — on Swift 6 and SwiftUI, with pragmatic judgment about when to go native and when to ship through the WebView.

You'll own the Cityflo iOS app — the thing 60,000+ commuters open at 8am to find their bus on a map. Features, releases, crash triage, production health: yours. You co-own a growing KMM shared module with our Android engineer and push more logic into an embedded WebView layer so we can ship faster than App Store review allows. The work is rider-facing and unforgiving: live bus tracking, trip booking, payments over Indian rails, notifications, the home and trip screens. We want someone fluent in modern Swift Concurrency who treats AI dev tools as a way to contain complexity and tech debt — not just to type faster.

What we look for

The assignment

Build a small SwiftUI app on Swift 6 with strict concurrency checking ON: the user searches a term, browses results from a network API, taps into a detail view, and the app remembers recent searches across launches. Modern Swift Concurrency only — no Combine, no GCD, no third-party packages for networking/images/caching (Apple frameworks only). It's deliberately under-specified; the calls you make and the questions you'd have asked are the test. Full brief + optional mock data: https://careers.cityflo.com/takehomes/ios-engineer/ — read BRIEF.md before you start. Use your coding agent fully; that's the point.

A 24-hour window from the moment you read the brief. We expect roughly half a day of real focus — call it 4–6 hours. Going much past that is itself a signal we'd rather not see: scope down and tell us what you cut.

Apply with your agent.

Connect your coding agent to our MCP and it handles the whole application — profile, resume, and this assignment. Solve it the way you actually work.

Sign in to apply →
← all roles