What’s the most above and beyond tech related feature/process you think Monzo will get to?
I think our microservices platform has really paid off. It was a huge investment in the beginning, when it certainly would have been easier to build the bank as a quick rails or django app.
But now, we have over 600 microservices and over 100 production deployments each day by a dozen different squads. And most of them don’t interfere with each other or even have to know about each other.
I have seen this wrong previously and am very thankful to past us that we invested so much time into a platform that, at the time, was a little too big for us
What differences do you find between working at tech startups in Silicon Valley compared to in London?
I think it is harder for startups in London to take truly huge ambitions seriously. For better or for worse, a lot of entrepreneurs in Silicon Valley set out to have the largest possible impact. They want a billion users, global scale, a company to outlast all companies, etc… It all just goes without saying. In London, when we say “We are aiming for a billion users”, people often roll their eyes at us. I sometimes think of my role in the business as saying the outrageously ambitious things until everyone first repeats them and eventually believes them
Another thing I think is different is that employees in London don’t value startup equity as highly. In SF everyone knows somebody who was able to purchase a home or at least a car because they were one of the first several hundred staff of a huge tech firm that IPOd. In London there aren’t many examples of that, so people tend not to pay a huge amount of attention to that part of job offers
We’ll see We have booked a one way flight to Vancouver and will then likely rent a campervan and tour down the pacific northwest. Towards the end of the trip we may stop by burning man (if we can get tickets)
It seemed a bit indulgent to spend much time planning the honeymoon when not even every aspect of the wedding is planned all the way through
Did you already have a system architecture in mind when you co-founded Monzo, or did you develop it with the initial team? Either way, what process did you go through to come up with the foundations on which Monzo was built?
The backend architecture was heavily influenced by Matt and Oli’s experience from Hailo. In particular the idea of very small microservices, using Go and using Cassandra as our primary database came from there.
The design of the platform arose from the following constraints
We didn’t know a huge amount about banking. We were very conscious that whatever functionality we’d build, we would probably have to rebuild a few times from scratch before we got it right. So we wanted it to be easy to rebuild entire components quickly
The people in the team knew how to make robust distributed service platforms already
We knew we didn’t want to do a huge “replatforming” once we hit scale, because that is very difficult to do without taking downtime (see for example Twitter’s famous “failwhale” phase; or from personal experience, in 2011/2012 Groupon had a similar period of lots of downtime)
We knew we had to go through a lengthy banking licence application before we could go live. At the time we didn’t know we were going to launch a prepaid card first
All of this led to our decision to invest heavily (well, as heavily as you can with 4 backend engineers) in building a distributed microservices platform
If you were to estimate, how much of the original code you wrote when Monzo was founded do you think is still in production today?
I wrote about 1/3 of the backend code for the first year (split fairly evenly with Matt and Oli). If I have time later, I’ll find out how many lines of code are still in production.
I stopped coding for the most part almost two years ago
I just had a look and discovered that I am still the #12 all time contributor to the Monzo codebase. But it looks like lots of people will pass that mark soon Here is my contribution history
For comparison, here is a graph of the contributions to our backend repository over the same time
Baby mondo: What are the things you worked on initially before switching to a more managing role (when it was just the 4 of you until Monzo became big enough)?
Err, literally everything. One thing I’m particularly pleased about are the merchant emoji that we send along with push notifications. A surprising amount of work goes into maintaining that database. I initially built the feature to surprise/troll my coworkers. Who knew it would become such a hallmark of our brand!
Developer heart: Are you still working on development things yourself (actual line coding, not specs/architecture). If so, how do you decide this?
I’m not coding anymore, but I occasionally still give feedback on Pull Requests or RFC documents (RFC stands for Request For Comments) for systems that are either very important or that I find interesting
Redundancy: What are the things that still makes you a SPOF in the company (if there are any), apart from your seniority? Is there anything only you could do (give example) which are still on prod?
I haven’t been able to totally remove myself from making hiring decisions for a long time. I really struggle with that, because I find it hard to explain to other people exactly what I am looking for in hires. So I worry that our approach won’t scale beyond myself.
From a technical perspective, I don’t think I’m the single point of success for anything anymore
90s point and click adventures. I learned how to read by playing Monkey Island, Indiana Jones and Day of the Tentacle. I pressed the space bar to pause the game literally on every sentence and then slowly worked out what was said (we didn’t have a soundblaster sound card until much later!). I also really like Kings Quest 5, 6 and 7, but I prefer the games where you can’t die
Diablo, because I picked up programming to make a website about Diablo
I also got addicted to Counterstrike 1.4 and World of Warcraft as a teenager… I now stay away from those kinds of games, lest I relapse
What would be your starter kit for a Junior Sys Admin (Laptop/Desktop, OS, suite of applications)
I used to get really into this. For the longest time I would only use Debian. And every time the non-free nvidia drivers got updated, my X window system wouldn’t boot and I’d have to compile the drivers again… Then Ubuntu came around and I conceded that it was slightly more convenient (albeit less “pure”). Then I got even more lazy and now I just use a Mac with as few changes from the out of the box configuration as possible. If I need anything fancy, I can just spin up a VM of that…
So my answer would probably be an off-the-shelf Macbook Pro and VMWare…
What would you advise them to study and get experience on
Programming. Learn how to write software that manages systems at scale and an incredibly in-demand career path opens up for you
Another question, What has made you move on from CTO into a ‘broader executive role’
I don’t get the reference
The main reason is that I’d like to spend more time doing the things that I can’t stop myself doing but that don’t traditionally sit with the CTO. In particular, I like organisation design. I’ve always been fascinated with how successful companies run on the inside; how are they structured? how do they run their processes? how do they trade off rapid, local decision making with management control? We will continue to grow very quickly, and I would like to put the right structure, tools and processes in place to ensure that we don’t lose what made us successful in the process
Another key reason is that I really really wanted to hire Meri. Whenever I had an issue in building the engineering org, I would ask Meri for advice anyway. It only made sense to get her aboard and then it only made sense for her to be the CTO, because she is a lot more qualified for that role than I am And as a founder you have the unique privilege of being able to just step back and call yourself “cofounder”
What is your super power? Do you have the opportunity to incorporate it into your working life at Monzo on a regular basis?
I think my superpower is systems design and architecture. I like looking at a group of problems and then finding a small but powerful set of abstractions that help understand and solve them.
I’m lucky, because I think this skill can be applied both to designing systems of computer programs, but also to designing systems of people that work together.
Whatever is available This is a very similar story to my relationship with operating systems. I’ve gone from rabid supporter of “the one true way” to fairly agnostic.
As a teenager, I was all about emacs. For a while I was really pleased that I didn’t ever use a mouse.
Then I got really into vim, which, on balance, I think I like a bit more. The command system feels a bit more elegant and you don’t ruin your pinky by hitting CTRL a million times a day… OTOH emacs lisp macros are way nicer, so YMMV
Then I got really lazy and now I mostly use Atom
What do people in the office generally use?
I think many people use Atom, but it’s fairly fragmented. Goland seems to be the up-and-coming one
Yes, I expect so. Will probably re-start this in Q4 2018
Do you think new fintechs will ever displace the huge card network duopoly of visa and MasterCard? If so what path could they take?
Definitely - it’s crazy to me that card networks still exist. I think Open Banking and PSD2 may finally do something about that. Even if open banking doesn’t go anywhere, once we have enough customers, we’ll be able to offer a very elegant “Pay with Monzo” functionality for merchants with significantly lower fees and less fraud
What languages are your favorites / do you use regularly and why?
I really like Go because it’s like a single speed bicycle. It’s light, easy to maintain and understand and hard to break. It’s not super flexible, but as long as there are no hills that’s fine Extending the metaphor a little, I like to think that the architecture of our backend platform makes it so our services encounter a “flat terrain”, so they don’t have to be written in the programming language equivalent of a 24-speed mountain bike.
For quick projects my go-to is ruby. It’s very simple to understand, too, but it is a lot more flexible than Go. I love having an interactive REPL into my program for debugging. On the flipside, the flexibility usually ends in myself trying to be “too clever” and then regretting it a few months later
What good resources are out there for beginners and what languages would you suggest I look into more?
It’s not for everyone, but I recommend reading Zed Shaw’s “Learn Python the Hard Way”. If you stick with the book, I promise you will know how to write basic programs by the end. The book has been rewritten for a lot of other languages
As for programming languages, it depends a bit what you want out of it.
I’d start with either ruby, python or javascript. Ruby and python more often satisfy the principle of least surprise and some people find them easier to learn as a result. The advantage of javascript is that you can write both the backend and frontend code for web applications in it.
What one feature would you build & launch today if you had a magic wand?
I would build a feature that allows customers in foreign countries to open accounts with us that are denominated in their local currency. Today we already have Monzo customers that live in foreign countries, but for most of those people it would be more useful if their balance and transactions were not shown in GBP.
1.5m customers and within striking distance of profitability
How about in 5 years?
Everyone in the world can download the Monzo app and it helps make money work for them
What do you think can stop Monzo from achieving it’s goal?
At this point, there are very few things that can kill us. More than at any other time in the last 3.5 years, it feels like this is our game to lose. If we screw it up, it will have been our own fault. It’s a nice feeling
What piece of advice (financial or otherwise) would you give to a young person/younger self gearing up to enter the working/adult world?
Listen to people’s advice. Most of it will turn out to be valid and super useful.
Also, has it been somewhat strange working in the same company as your fiancé?
This is a really good question
It definitely heightens the stakes Leah was there from day 1, too, so in the beginning we were worried that if things went south, they’d go south for both Monzo and us!
On balance, though, I think it was hugely beneficial both for our relationship and for Monzo. It amplifies and accelerates everything. We have spent more time together than many people that have been going out several times as long. When it’s stressful at work, your personal life will life will also be stressful. And when your personal life is stressful, it may drag into work. You have to get really good at communicating and working through problems together.
For a long time Leah was in charge of all operations at Monzo and I was in charge of the technology. Those two parts of companies often don’t interface much. At Monzo they had perfectly synchronized brain state.