We’re searching for product-aware Android 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 bank: 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 Android engineers 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 Android app
At Monzo, you'll get to work with industry standard tools and technologies - and help us define what great looks like for Android engineers.
Our app is almost 100% Kotlin, mostly built using MVP (Model View Presenter), though we are currently transitioning to MVVM (Model View ViewModel). We've started to use Coordinators to help use re-use screens where we can. Our app is modularised by product feature.
We use RxJava heavily, Retrofit and Moshi for API calls and Dagger for dependency injection. We use Realm and Room for persistence, and Repositories for interacting with them.
We use GitHub Pull Requests to do code reviews, and write unit tests for our Presenters, ViewModels and any other classes which contain logic. We Espresso for UI tests, which we run on Firebase Test Lab via CircleCI.
We recently wrote about building Monzo Chat on Android, which goes into detail on some of these elements.
What you'll be doing
As an Android engineer at Monzo you'll work in a small, autonomous product squad alongside iOS Engineers, Backend Engineers, User Researchers, Product Designers, Product Managers and 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 Android 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 want to build a product that you and everyone you know uses literally every day
- You’re comfortable working in a team that deals with ambiguity every day
- Are great at explaining complicated technical concepts clearly
- Have an understanding of the principles of computer science
Bonus points for (but not essential):
- Familiarity with iOS 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 Android 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.
You'll meet 2 engineers (not always Android engineers). 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.