Starting from scratch as a new engineer at Monzo

Read the article

Hey folks 👋 I’m Grace, and I joined Monzo in October ’23 as a Backend Engineer in Fincrime Business Banking. I’m here to convince you to apply for that role you really want (at Monzo 👀), even if you’re wholly unconvinced you’ll get it. I’ll also be talking about how exciting, challenging and rewarding changing roles has been for me.

👩‍🎓 Before Monzo

My background is in science and engineering, and I’ve worked across several tech roles during my career in a pretty wide range of industries. For full disclosure, I fell into software engineering kind of by accident but hot take being paid to find awesome solutions to tough problems really is the best job in the world.

👩‍💻 My role at Monzo

Decomposing my role into its constituent parts, we get:

  • 🎮 Fincrime - meaning working within the Financial Crime collective, ensuring we put the right controls in place to allow Monzo to operate safely for our customers

  • 👔 Business Banking - meaning also working within our Business Banking collective, ensuring we strive for great outcomes for our business customers

  • 💻 Backend Engineer - meaning an individual contributor who looks after the software that underpins how Monzo works. At Monzo, we use Go for a majority of our backend microservices, and Cassandra for our persistent data storage (take a look at some of the other Monzo blogs for a deeper dive into our architecture).

Now, here was my experience in these areas before joining Monzo (out of 10):

  • 🎮 Fincrime - 0

  • 👔 Business Banking - 0

  • 💻 Backend Engineering - 2 (there’s nuance here, as although I’ve been an engineer for a while now, I’ve never written Go, used Cassandra or worked on software operating at the scale of millions of active users. So for the sake of dramatic writing, I’ve given this a 2. Don’t come at me).

You’d be forgiven for wondering why a) I applied for this job and b) why Monzo hired me for it (and trust me, the imposter in me wondered this too).

🪠 Taking the plunge

For the reasons listed above, I nearly talked myself out of applying for a role at Monzo about 1000 times. But as a long-term customer and Monzo evangelist, I really wanted to work there. I had also heard wonderful things about the culture at Monzo, and wanted a new challenge tech-wise (having largely worked with the same tech stack for the best part of 5 years). So I take the plunge, do the scariest part and submit my application. Then, ✨miraculously✨, one of the lovely internal recruiters at Monzo sets up an initial chat.

There is a great blog post about the engineering interview process here at Monzo, so I won’t go into too much detail about it. However, what I will say about my personal experience is

  1. ⚖️ Monzo places emphasis on what you’ll bring to the role from your range of experiences, rather than necessitating exact knowledge of their tech stack and remit. Be prepared to answer questions about decisions and trade-offs you’ve made, projects that went well and not so well, and what lessons you’ve learnt along the way.

  2. 🤝 Throughout the process, everyone I dealt with came across as though they wanted me to succeed. There were no trick questions, no unrealistic expectations of back-to-back interviews, no Leetcode tests (full disclosure: there were hard questions and take-home exercises, but very reasonable ones).

  3. ❓ I was interviewed by lots of different people from across all the collectives, from engineers to senior engineering managers. At each stage, I was afforded plenty of time to ask questions, and the interviewers were incredibly generous with their views and experiences. There were several questions I asked repeatedly (e.g. what is the Monzo culture actually like IRL, what would you change about Monzo.), and everyone’s answers largely corroborated each others’ on the things that mattered most to me.

Interviewing is a two way due diligence process, and I heartily encourage you to use this opportunity to find out if the company is the right fit for you and your career aspirations. Because I had such a positive experience throughout the interview process, accepting the role at Monzo was a no-brainer.

👶 Being a newbie again

Day one at Monzo, and onboarding begins with unboxing a shiny new Mac. As a new Monzo employee, there’s some Monzo specific onboarding and as a backend engineer there are another couple of weeks of engineering specific onboarding. Backend 101 is a mix of personal guided study, recorded sessions and tutorials with resident expert engineers to bring those from all backgrounds up to speed with Monzo’s tech stack. Over the next few weeks:

  • 🎓 By the end of week 2, I’ve finished a large portion of Backend 101. I have a basic understanding of Monzo’s architecture, written my first Go code and deployed some non-prod services, and a good awareness of where/who to go to when I have questions. I’m feeling excited to start using my new skills in my new role, but also feeling like a bit of an imposter.

  • ☕ In week 3, we’re released to our squads to meet our colleagues and start understanding our specific domains. My team is awesome, and I’m assigned a buddy to help me settle in. By the end of week 3 I’m feeling good, albeit a bit overwhelmed and over-caffeinated.

  • 📉 By the end of week 4, I deploy my first actual code change (a two liner). It explodes. I revert it. I feel like the world’s worst engineer. I try it again, successfully. I thank the heavens for fault tolerant systems and a speedy CI pipeline.

  • 🛠️ By week 5, I’m working on a project that touches several different microservices. I continually refer back to Backend 101 (easily the best engineering reference docs I’ve used), and am beginning to feel like I am a worthy engineer again. I continue getting things wrong, grossly under- and over-estimating how long it’ll take me to do tasks, but I’m afforded lots of patience by my team and my manager.

  • 📈 Over the next weeks, I learn a lot by doing - writing (and rewriting, and re-rewriting) code, reviewing others’ PRs, reading/writing proposals and lurking in incident channels. I also book a couple of study days, on which I’m encouraged to turn off Slack notifications to fence off some proper mental space for learning. A Tour of Go and Go by Example are the real MVPs in guiding my learning of the fundamentals. The working knowledge from doing stuff and the academic/abstract learnings from study are beginning to converge in my head, and with each day spent with Go I’m healing from the breakup with my beloved Python. And most importantly, someone in my team makes a Slack emoji in my honour - I play it cool, but I’m secretly thrilled.

👧 Not a newbie, but not yet an expert

At the time of writing, I’ve been at Monzo for four months and I’m so grateful to have landed here. I’ve found my time here to be equal parts incredibly challenging and incredibly rewarding. Here are the things I’d share with myself 4 months ago:

  • 📖 Take time to embrace being a beginner again. I was very fortunate that not only did my team hold space for me to onboard, I was actively encouraged to take my time doing it properly by several of the leaders and my colleagues (quote: “you only onboard once”). It will be strange knowing so little to start, but remembering how privileged you are to be paid a salary whilst getting to learn so much will keep motivation and morale high.

  • ❓ Ask for help, ask questions, ask for clarity as often as you need. The times I didn’t do this over the last 4 months always saw worse outcomes than when I did. One of Monzo’s core values is “default to transparency”, so asking questions out loud for others to benefit from is not only encouraged but celebrated.

  • 🛠️ But in complement to the point above, don’t be afraid to just have a go at things too. Get stuck in, figure things out, form opinions on things that are new to you etc. You will have been hired because you have skills and traits that are really valued, and it’s important to remember this when everything feels new. I’ll admit it’s taken me a while to feel confident enough to have opinions on things here, and it’s something I’m actively working to improve.

  • 🤯 The more you figure out, the more you’ll realise you don’t know (see Dunning-Kruger effect). This can feel really scary (it still is to me right now), especially if you’ve come from a job where you were really comfortable. After a while though, you’ll be able to see how much you’ve learnt and what you’ve achieved, even if there’s still lots to learn!

  • 🚀 You definitely won’t get the job if you don’t apply for it.

You miss 100% of the shots you don’t take - Wayne Gretsky

- Michael Scott

Come join us!

You've heard the pitch, now it's time to apply. Check out our careers page and take a look at some of our Tech blogs especially the ones Grace has pointed out above.