We're also offering paid engineering internships.
At Monzo we aim to build the best current account in the world. We are always keen to hear from capable, creative engineers who want to help us accomplish that goal.
Our backend engineering team have a variety of different backgrounds: we have several non-graduates; only a couple 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 work in project-based sprints, and take turns to be the floating engineer who handles interrupt-driven work and non-critical bug fixes. We work directly with everyone across the company, from customer support to regulation, product to financial crime, and we run regular knowledge-sharing sessions so you’ll learn heaps about everything from how banks work to effective communication.
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 regularly run hackathons in which people build things on our third party API and we contribute to open source software as much as possible. We’ve also made our product roadmap public and give sneak peeks of features in our community forum.
If you’re unsure about applying or have any questions about the role or team, please don’t hesitate to email our CTO Jonas (firstname.lastname@example.org) directly :) We're very open about what we do in general, so our blog is a good place to learn more about what we do.
Things we are working on
We’re still a relatively small company with only 15 people in the backend engineering team and 60 people in total. This means you will need to wear many hats in the beginning but it also means there are many interesting challenges ahead that you can specialise in if you like. Broadly, the work we’re doing covers these areas:
Distributed platform: We aim to be the first bank without a single point of failure
We are building a state-of-the-art microservices platform based on the learnings of Netflix, Twitter, and Google. We're investing a lot of up-front effort in building a scalable, secure, and extensible architecture. We've posted a good overview of our platform on our blog.
Banking and payments: We write code that moves money
Between integrating with crufty old payment schemes, connecting to legacy systems from the 1970s, and designing our own core banking ledger, at Monzo we get to see how the financial sausage is made! If you were ever curious about how money flows through the financial systems or wanted to write code to move money in a safe way, this is your chance.
Product engineering: We help our customers by hiding the boring parts of money management
On the user-facing side, we take complicated regulations around things like lending, identity verification, and financial advice and reduce them to something our customers can use with ease, so they can focus on the rest of their life. We have built a powerful analytics pipeline to help us understand how our users use our apps and how we can make them more intuitive.
Financial crime: We need to stay ahead of criminals trying to steal data and money
We do a lot of work around fraud and electronic crime, using a mix of machine learning models, discrete rules, human review, and clever product features to fight back. You’d work closely with our regulation team, analytics, customer support, and fraud investigators to make sure we’re doing everything we can to fight against financial crime.
Internal tooling: We automate everything so the rest of the team can work smarter
Our mobile app is just the tip of the iceberg that we’re building. A huge part of our competitive advantage comes from internal tools and processes that are not visible from the outside. This is why we’re able to provide exceptional, fast support to all of our users. Behind the scenes we have built a state-of-the-art operations platform that facilitates card dispatch, customer support, regulatory reporting, audit, and much more. We aim to automate as much as possible and enable everyone in the team to be really efficient by using highly specialised UIs and assisting them with AI where we can.
Our technology stack
At Monzo you will get to work with a lot of exciting new technology. We rely heavily on the following tools and technologies:
- Go to write our application code (there is an excellent interactive Go tutorial here)
- Cassandra for most persistent data storage
- Kafka for our asynchronous message queue
- Linkerd/Finagle for RPC
- Kubernetes and Docker to schedule and run our services
- AWS for most of our infrastructure
- React for internal web dashboards
- We also have two physical datacenter sites with actual cables to connect to various third parties :)
You should apply if:
- the work we’re doing sounds exciting!
- you want to be involved in building a product that you and everyone you know uses literally every day
- you’re keen to learn more about new technologies and the arcane inner workings of the financial industry
- you’re comfortable working in a team that deals with ambiguity every day
- you’re interested in distributed systems and writing resilient software
- you have some experience with strongly-typed languages (e.g. Go, Java, C, Scala…)
We can help you relocate to London, we can sponsor visas, and we're open to remote working as long as you can spend around 20% of your time in London.
Our interview process consists of an initial phone screen, a take-home code test, and a half-day on-site interview. We promise not to ask you any brain teasers or trick questions, and we won't make you code on a whiteboard!
We are continually looking for new backend engineers, but prefer to batch interviews when possible. If you are under time pressure to change jobs soon, please let us know by when you need a decision in your application.