iOS Software Engineer
Monzo (View all Jobs)
San Francisco or New York City
1. Phone interview 2. Take-home, & call to discuss it 3. 2-3 hours of on-site interviews (systems/behavioural)
Programming Languages Mentioned
📍This role will be based in either our San Francisco or New York City office, on a hybrid basis.
We’re building the best bank account in the world. We believe there should be an alternative to the banking of the past: we help our customers better manage their finances through beautiful and intuitive digital tools. We want to replace the terrible user experiences that you are forced to use whenever you log into your bank, and get rid of unfair fees and poor customer service.
Monzo is the lead challenger bank in the UK. In the last few years, we’ve built a banking app with extremely high daily engagement and an NPS that’s consistently above 70. More than 8 million people (15% of UK adults) have a Monzo account. We’ve raised over $1 billion from YCombinator, Stripe, Coatue, Eric Schmidt, Mike Moritz and others - most recently at a $4.5bn valuation. Our competitive advantage is that we operate like a tech company in a space where software has not yet eaten the world - for example, we built our own core banking system from scratch!
We launched Monzo in the US in 2022 and are just getting started. Your work will help us deliver on our product and technical strategy as we expand into our first international market. We’re a small team operating like an early stage startup but with the financial, operational, and engineering platform muscle of a larger company. We’re focused on launching an amazing US product, shipping and iterating quickly, and finding product market fit. We’re looking for driven, gritty, and enterprising people to help us achieve our mission to make money work for everyone.
Internally, we encourage an open, collaborative, inclusive working environment. We contribute to open source software, and we continually engage with our wonderful community. We’re hiring talented, creative problem-solvers to help us build the bank of the future. Join us!
About the Role
We’re looking for a product-minded iOS engineer to help us rebuild banking from the ground up. As a member of a small but mighty team based, you'll have a rare and exciting opportunity to shape the product, the launch, and the team we hire. Whether it’s by building new tools to help our customers understand and control their money or by creating beautiful, smooth onboarding experiences, you’ll drive massive impact across the entire business. The ideal candidate will have experience working as part of small teams or at early stage companies and be capable of working independently and efficiently in ambiguous environments.
This position will report to the US Head of Engineering.
What You'll Be Doing:
- Build new features for the iOS app to launch to US customers as part of a small and collaborative product squad
- Test, launch, and iterate on product features based on a data driven approach that also incorporates user feedback and testing
- Contribute to hiring, product testing, and vendor selection
You Should Apply If:
- You have at least 2 years experience working on the iOS app of a consumer technology product
- You have at least 2 years experience writing in Swift using frameworks like UIKit and Foundation. SwiftUI experience is a plus!
- You’ve shipped and iterated on at least one app in the App Store
- You have a product mindset: you care about customer outcomes and want to build a product that fundamentally changes how users manage their finances
- You love turning excellent design into beautiful products
- You’re excited to work on a fast-moving, lean team
- You have a solid understanding of computer science principles
About our iOS app - Technology Stack
At Monzo, you'll get to work with industry standard tools and technologies and have the opportunity to help define what great iOS engineering looks like.
Our app is 100% Swift, built using a Model, View, View-Model architecture (MVVM). We use Coordinators to ensure we can re-use screens wherever possible, and avoid tightly coupling one screen to another. We make heavy use of protocols and extensions throughout our app.
Our networking stack is built upon Alamofire, using a generic interface to easily de-serialize objects of a certain type, and we mirror our backend micro-service architecture by building individual services to house our API logic.
We persist objects using Realm when we need to.
Our testing stack consists of unit tests for business logic, stubbed API tests for pseudo-integration tests, snapshot tests for UI, and XCUITest for testing user input and sequencing.
We've published some talks and blog posts about how we work:
- Working with backend services on iOS
- Pushing Protocols to their Limits
- Our mobile release process: An illustrated story
Please note: this role is required to be based in either our San Francisco or New York City office, on a hybrid basis.
- 🏥 Great Health, Dental and Vision Insurance
- 💲 Competitive salary (salary range for this position is $160-200k, and is based on San Francisco or NYC residence and experience)
- 📈 Stock Options
- 💰 Generous 401k with 4% employer match
- 🏝 32 days of vacation and public holidays per year (and we require that you take all of your days each year as we believe that well rested employees are more effective!)
- Maternity / Paternity leave
- We offer flexible working hours and trust you to work enough hours to do your job well, at times that suit you and your team.
Snippets of Monzo Culture
- Our mission of financial inclusion: We want everyone who wants one to have access to a Monzo bank account, along with information to help them make good financial decisions
- Default to transparency: How transparency is key in the ways we work and serve customers
- The Monzo Tone of Voice: How we use our voice to cultivate clarity, positivity, and approachability
- Gambling block: At Monzo, we focus on helping vulnerable customers
Our interview process consists of an initial phone interview, a coding interview (your choice of a take home or real-time task), followed by a remote “on-site” interview consisting of two rounds:
- You'll meet 2 other iOS engineers. Together we'll go over some technical challenges we've faced as a company. We'll ask you to come up with designs to solve these problems, and we'll ask you questions about your experience using Swift in production.
- You'll meet 2 Monzonauts to chat about some of the non-technical parts of being a product engineer at Monzo. These include your experience in delivery, teamwork, coaching/mentoring and persuasion.
At each stage you'll have an opportunity to ask us questions about what life is like at Monzo.
We promise not to ask you any brain teasers or trick questions. We might design a solution together on a whiteboard, the same way we often work together, but we won’t make you write code on one.
Please mention No Whiteboard if you apply!
I'm a one-man team looking to improve tech interviews, and could use any support! 😄