Cityflo
Website:
cityflo.com
Job details:
About Cityflo
Cityflo is a daily commute company that provides a comfortable, stress-free travel experience for
corporate professionals, as an alternative to driving. With premium buses, a simple app and caring
customer service, our passengers get the luxury of time in their busy schedules. We're bringing joy back to commuting, and turning around urban traffic woes in a big way.
Today, we run 1200+ buses across Mumbai, Hyderabad, Delhi and Kolkata and log 60,000+ daily rides. Over the next 3 years, we plan to scale to 5000+ buses and 300,000+ daily bookings across India. Cityflo is well-funded by prominent investors, operationally profitable and on path to soon become net profitable.
Website: https://www.cityflo.com
App: https://bnc.lt/cityflo
The Role
We’re looking for an intermediate level iOS engineer who'll work closely with our Android engineer on shared (KMM) code and collaborate daily with backend, product, design, and operations.
This is a high-ownership role. You'll make architectural calls, own the release process, monitor
production, and decide what to build versus what to push into the shared module or the web layer. We invest heavily in giving you the context and trust to do this well.
What You'll Do
• Own the Cityflo iOS app end-to-end — feature development, releases, production health, and
crash triage.
• Co-own the KMM shared module with our Android engineer. Roughly 20–30% of our app logic lives there today, and is growing.
Help us push more of the app into our embedded web layer over time, so we can ship changes
without going through the App Store on every release.
• Work on the parts of the product that genuinely matter to riders — live bus tracking, trip booking, payments, notifications, and the home/trip screens.
• Collaborate with backend engineers on API design, with product/design on what to build, and with operations on customer-facing issues.
• Set up the standards: testing, CI, release cadence, crash monitoring, and observability for iOS.
• Be the iOS voice in the room when we make product, infra, or architecture decisions.
What We're Looking For
• 3–5 years of professional iOS development experience, with at least one app you've shipped and
maintained in production.
• Strong understanding of modern iOS development practices, including Swift 6, SwiftUI, Swift
Concurrency (async/await), and Combine. Comfortable working with legacy UIKit and GCD-based
code where needed.
• Comfort being the only iOS engineer on a team — you can make decisions, document them, and
ask for help (inside or outside the company) when you need to.
• Pragmatic outlook on the native-vs-web question. You don't believe every screen needs to be
hand-crafted in SwiftUI, and you're happy to push code into a webview or shared module when it's
the right call.
• Apply best practices in UI/UX development to deliver intuitive and delightful user experiences.
• Use AI-powered development tools (Claude Code, Codex, etc.) not just as a force multiplier to ship faster, but also to contain code complexity and technical debt.
• Experience with the full App Store release lifecycle — TestFlight, certificates and provisioning, App
Store review, phased rollouts, and rollbacks.
• Solid production hygiene — you've used Crashlytics or Sentry, debugged real production issues,
and care about app stability and startup performance.
• Good communication skills. You'll be discussing and documenting decisions and collaborating with the rest of the team.
Nice to Have
• Prior exposure to Kotlin Multiplatform (KMM) or any cross-language interop — even just reading
Kotlin and debugging generated Swift bindings.
• Experience with real-time / location-heavy apps — background location modes, Google Maps,
websockets, push notifications for time-sensitive events.
• Familiarity with Indian payment SDKs (Razorpay, Juspay, UPI deep-linking) and the quirks that come with them.
• Experience with hybrid native + web architectures — bridging JS and Swift, debugging
WKWebView, building native↔web message channels.
• Comfort reading and contributing to a codebase you didn't write.
Why Join Us?• Work on solving a real-world problem that impacts millions of people daily across India
• Work with a modern tech stack and AI-augmented development workflows
• Be part of a fast-moving, collaborative, and product-focused engineering culture
Our Tech Stack
• iOS — Swift (you'll own this)
• Android — Kotlin
• Shared (~20–30%) — Kotlin Multiplatform (KMM)
• Embedded web (~5% today, growing) — loaded via WebView on both platforms
• Backend — primarily Python; some Go and Rust services
How We Work
• Small team, high trust. Engineers own their domain end-to-end, from product conversations to
production monitoring.
• We ship often and iterate. The web-in-app direction exists precisely so we can move faster than
App Store review cycles allow.
• We document decisions. Async-first where it helps, in-person where it doesn't.
• We care about the customer’s experience. Engineering decisions get weighed against what actually shows up on a customer’s phone at 8:30 AM.
How to Apply
Send your resume, a link to any iOS app you've shipped (App Store link is ideal), and a short note on the most interesting iOS problem you've solved in the last year — what made it hard, and what you did about it.
Email - sudhanshu@cityflo.com, amey@cityflo.com
Click on Apply to know more.