Senior iOS Engineer
iOS Engineer – Job Description
As our new iOS engineer, you’ll need to be a pragmatic problem solver who takes ownership of your work and thrives in a collaborative environment.
It takes the entire Engineering team to keep YNAB “the software” up and humming. Our engineers work together, which helps ensure we have sound designs and that our code and systems are efficient, maintainable, and as bug-free as possible. You’ll work with other engineers and QA, collaborate on technical strategies and methodologies, and review each other’s work. You’ll also regularly engage with other departments: with a customer support representative on reproduction steps for a bug, with a designer to iterate on a feature, or with a PM on the technical feasibility of product ideas.
At YNAB, solving engineering problems means communicating early, often, and thoughtfully across the company. You’ll need to meet our high standards for clear, empathetic communication, and address issues directly with a respectful and constructive approach. There’s not a lot of ego around here, even though we are very proud of the outcomes we achieve together, and this is reflected in our communication style.
Your Day-to-Day
You’ll be embedded in a product team focused on making transaction entry seamless for YNAB users. You’ll work alongside a PM, product designer, QA analyst, support specialist, and other fullstack engineers (you’ll be the sole mobile engineer on this team, at least for now).
- Brainstorming with product team members on new features and improvements.
- Reviewing UI/UX designs and providing platform-specific feedback.
- Working with PMs and designers to assess technical feasibility and break down work into scoped plans.
- Working with Support to investigate and resolve customer issues.
- Collaborating with QA to ensure strong testing coverage.
- Architecting, designing, developing, testing, deploying, monitoring, troubleshooting, and maintaining code.
Mobile Release Ownership
- Shepherding iOS app releases through the release process.
- Acting as the single point of contact for releases.
- Resolving issues or regressions during release cycles.
Platform Maintenance
- Proactively fixing production issues.
- Monitoring logs and crash reports.
- Staying current with iOS trends and updates.
- Applying security patches and updating dependencies.
Our Engineering Team
Our Engineering department uses a peer-to-peer, non-hierarchical leadership style with separate technical and people management roles.
- DRI (Directly Responsible Individual): Owns a technical area and guides direction, with authority to make decisions when needed.
- People Manager: Focuses on supporting engineers, helping them grow, and acting as a bridge to the company.
These roles are part-time and allow engineers to remain individual contributors first.
iOS Tech Stack
- Native Swift codebase with Swift Concurrency.
- Mix of SwiftUI and legacy UIKit, with minimal Objective-C.
- Modular architecture using Swift Package Manager.
- Cross-platform business logic via JavaScript and Kotlin Multiplatform.
- Local-first architecture using SQLite (FMDB) with custom sync engine.
- Fastlane, Bitrise, Match for CI/CD and deployment.
- Feature flags, Labs builds, and Debug modules for experimentation.
- Additional surfaces: Widgets, App Intents, and watchOS companion.
- QA-driven development with strong unit/UI testing in CI.
