We’re searching for product-aware iOS engineers to help us on our mission: you'll centre users in the way that you think, and have a passion for great UI and UX. You understand the need for tested, resilient code balanced against the need to move fast and iterate.
We’re building a bank for and with our users. A product that’s fair, transparent and a pleasure to use. We see ourselves as something more than a typical current account: we’re setting out to solve all the problems that exist around your financial life in a coherent, meaningful and delightful way.
You’ll be working on a product that is a part of day to day life for more than a million people already, and your work here will shape the way that people interact with their finances.
Engineering at Monzo
There are 13 iOS at Monzo, and we're looking to grow the discipline to 25 people over the course of the year.
We have several non-graduates; only some of us studied Computer Science; one of the team has a degree in Marketing; some of us have worked in huge companies; some have only ever worked in startups; others are former consultants. As long as you enjoy learning new things, we’d love to talk to you.
We encourage an open and transparent working environment
You can get involved in any aspect of the business you are interested in and, following Stripe’s example, all emails in the company are visible in an email archive. We’ve also made our product roadmap public and give sneak peeks of features in our community forum. Our blog is a good place to learn even more about what we do!
Monzo works in project-based sprints in small, interdisciplinary teams
We have around 100 engineers out of roughly 450 people in total - and we have big ambitions. There are many interesting challenges ahead, and we're happy for people to move between teams or to specialise, whatever you prefer. As an engineer here you'd be able to work directly with anyone across the company, and we run regular knowledge-sharing sessions so you’ll learn heaps about everything from how banks work to effective communication
Our iOS app
At Monzo, you'll get to work with industry standard tools and technologies - and help us define what great looks like for iOS engineers.
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-serialise 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 comprises of unit tests for business logic, stubbed API tests for pseudo-integration tests, snapshot tests for UI, and KIF 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
- The Release Mindset (how we release our apps)
What you'll be doing
As an iOS engineer at Monzo you'll work in a small, autonomous product squad alongside Android Engineers, Backend Engineers, User Researchers, Product Designers, Product Managers, QA Testers, and Business Analysts.
Your mission will depend on the squad, but currently mobile engineers are working on customer growth, revenue, lending products, business banking and internal operations. We also have a small squad dedicated to enabling other mobile engineers to move faster.
You and your team will be responsible for an overall company goal, rather than building a specific feature - you'll have the opportunity to have impact on both what we build, and how we build it.
Every week we meet as a discipline to discuss tools, techniques, problems we're encountering across the company and work together to improve our codebase and processes.
You'll report to an engineering manager, and we have specific managers who have a background in mobile engineering. Your manager will meet with you every 2 weeks 1:1, and their mission is to help you develop and grow as an engineer.
What we're looking for
We're looking for iOS engineers with strong product sensibilities. You'll care about the impact your work has on our customers, and optimise for impact rather than the number of lines of code you output.
You should apply if:
- You are excited about programming in Swift
- You’ve shipped and iterated on at least one app in the App Store
- You love turning excellent design into beautiful products
- You enjoy developing apps that delight users
- You’re comfortable working in a team that deals with ambiguity every day
- Have an understanding of the principles of computer science
Bonus points for (but not essential):
- Familiarity with Android engineering, or other programming languages
- Contributing to open source projects
Our salary range for the role is £50,000 - £100,000 per annum depending on experience, plus stock options.
Our main office is near Moorgate in London, though you have the opportunity to work remotely as long as you can spend around 20% of your time in London. We can help you relocate to London and we can sponsor visas!
Our interview process consists of an initial phone screen, a take-home code test with a call to review your solution, and a half-day on-site interview.
The on-site consists of three 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 engineers from different disciplines. We'll go through some technical problems you've solved in the past, and we'll go through some general engineering problems together. We're not testing your knowledge, but how you respond to problems you haven't solved before.
Product and design
You'll meet a product manager and designer, who will go through your code test with you, and talk about how you work with designers, product managers and other stakeholders on projects.
At each stage you'll have an opportunity to ask us questions about what life is like at Monzo. We won't ask you to write code on a whiteboard during your interview.