hero

Craft Ventures Portfolio Job Board

iOS Engineer, KMP

OpenPhone

OpenPhone

Software Engineering
Canada · Remote
CAD 174k-193k / year + Equity
Posted on Sep 23, 2025
iOS Engineer, KMP
Remote - Canada
Engineering
Remote
Full-time
For millions of teams working in dozens of industries, day-to-day business gets done on the phone. So why — despite the huge leaps we've taken in design and usability — does most business phone software still look, feel, and act like it was born in the 90s? OpenPhone is changing that.
We’re a new type of business phone with a mission to help people communicate better and be more productive.
We’re backed by Y Combinator and some of the best venture firms around including Tiger Global, Craft Ventures, Slow Ventures, and others. We take pride in providing an exceptional customer experience and a product people love, which is why we’re excited that our customers have rated us the #1 VoIP Provider on G2.
OpenPhone is the modern, sophisticated answer to the clunky, outdated phone systems that have been slowing down businesses for years. With thousands of happy customers and several rounds of funding in just five years, it's safe to say we're onto something big.

About the role

As part of our mobile engineering team, this role focuses on building new features and enhancing our iOS application. You’ll work with shared Kotlin Multiplatform (KMP) modules that are developed alongside platform-specific code, ensuring they integrate smoothly with the iOS codebase while maintaining high standards for performance, usability, and reliability.
You’ll work closely with iOS engineers, Android engineers, and product stakeholders to deliver a seamless experience for our users. Simply put, you’ll help shape the way OpenPhone builds mobile apps for years to come.

Some of the things you’ll do:

  • Feature Development: Building new features and enhancing existing functionality to improve our product and better serve our customers.
  • Shared Module Development: Creating and optimizing shared Kotlin modules that work seamlessly with iOS, ensuring APIs feel native and intuitive for iOS developers.
  • iOS Integration: Working with iOS engineers to integrate shared functionality and extend capabilities on the iOS platform.
  • Architecture Enhancement: Improving and modernizing the iOS codebase to support new features and capabilities.
  • Performance & Scalability: Ensuring shared components are performant and scalable to support growing feature requirements.
  • User Experience: Delivering seamless, native-feeling experiences on iOS through well-designed shared modules.
Your contributions will directly impact our ability to scale efficiently while delivering a best-in-class iOS experience.


Technical Stack and Tools

  • Kotlin Multiplatform (KMP) with clean architecture principles
  • iOS: Swift + SwiftUI for new features
  • Shared KMP modules: Apollo GraphQL, Ktor networking, OpenTelemetry, feature-specific modules (conversation, contacts, alerts, etc.)
  • Persistence layers: Room (shared KMP) & Realm (iOS)
  • Dependency injection: kotlin-inject for KMP
  • Testing: JUnit, Mockk, Turbine, Maestro (cross-platform E2E)
  • Collaboration tools: Linear, Slack, Notion, Figma


About you

Must Have

  • Significant experience with Kotlin Multiplatform and integrating shared modules into native iOS projects
  • Highly skilled in iOS development with Swift and SwiftUI; adept at making Kotlin APIs feel native for iOS
  • Strong understanding of mobile architecture patterns: Repository pattern, Clean Architecture, vertical slice architecture
  • Passion for solving complex problems, writing maintainable/testable code, and ensuring seamless cross-platform experiences
  • Strong cross-functional collaboration and communication skills
  • Proactive, curious, and eager to drive innovation in cross-platform mobile development

Nice to Have

  • Experience with Android development and migrations (Hilt → kotlin-inject, legacy → KMP)
  • Familiarity with Circuit and Molecule for state management
  • Knowledge of observability & telemetry (e.g., OpenTelemetry)
  • Experience with GraphQL (Apollo Client)
  • Familiarity with dependency injection and modern build systems (Gradle, KSP)
  • Testing experience: JUnit, Mockk, Turbine, Paparazzi
  • Familiarity with E2E testing (Maestro)
  • Experience with feature flags & gradual rollouts
  • Knowledge of mobile performance optimization & memory management


Compensation

The annual base salary range for this position in Canada is $174,000 - $193,000 CAD, plus equity and benefits. This range is designed to align with market rates in areas where we are actively recruiting across Canada.
The range displayed reflects the target for new hire salaries, and within this range, individual pay is determined by your skills and experience, as well as relevant education. Your recruiter can share more and answer questions about the specific salary range during the hiring process.
Salary is just one component of OpenPhone’s total compensation package. Your total rewards package will include equity, extensive medical coverage, a monthly lifestyle stipend, and a flexible PTO policy.

Who we are

As a fully remote company, we thrive asynchronously as a team. We are curious, ambitious, and dedicated to our work. We value trust above all else, and have a strong bias for action. If you're looking for a place to do your life's work, please get in touch. We'd love to hear from you.
And remember, there's no such thing as a 'perfect' candidate. We're looking for optimists with grit and determination, who are excited to face the challenges of a growing startup. OpenPhone is the type of company where you can grow, and we encourage you to apply for this role even if you don't think you meet all the requirements.
We are committed to creating an inclusive and diverse work environment. It is important that you are able to bring your authentic self to work every day. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status. #LI-Remote
Ready to apply?
Powered by
First name *
Last name *
Email *
LinkedIn URL *
Phone number
Resume *
Click to upload or drag and drop here
Cover letter
Click to upload or drag and drop here
Why are you interested in working at OpenPhone? *
What interests you about this particular role? *
Are you legally authorized to work in Canada without requiring sponsorship now or in the future? *
We would like to hire this role in Canada. Please confirm your current residence. *
Website *
By submitting your application, you agree that OpenPhone will collect and process your personal data for recruiting purposes (e.g., evaluating your application, conducting interviews, and managing the hiring process). Your data will be shared with Gem Software, Inc., our U.S.-based recruiting software provider. If you are located outside the United States, your data will be transferred there with appropriate safeguards (such as standard contractual clauses under GDPR). We will keep your data only as long as necessary for recruiting. If you are in the EU/EEA you have the right to access, correct, delete, restrict, or transfer your data, and to lodge a complaint with a supervisory authority. If you are in California you have the right to know what we collect, access your data, request deletion or correction, opt out of data sharing, and not be discriminated against for exercising your rights. You can exercise your rights anytime by contacting us at [email protected] . *
Req ID: R23