_ Blog / Management

Engineering Culture: The Secret Behind Monzo’s Developer Magnet

by Gábor Zöld
/ March 4, 2020
#Management
Engineering Culture Monzo

Engineering Culture: The Secret Behind Monzo’s Developer Magnet (Interview with Sally Lait, Senior Engineering Manager at Monzo)

Engineering culture is tricky to build up the right way. It’s intangible, so you can’t just go through a checklist. It’s also a lot of work to build or change, so you can’t have it down by next week from zero.

But engineering culture is extremely valuable. It can keep your developers around, and if word gets out, it’ll make new talent want to work with you, easing your recruitment pain.

Karolina Tóth interviewed Sally Lait, Senior Engineering Manager at Monzo on how they handle engineering culture in episode 11 of the Level-up Engineering podcast. Monzo is all about the culture, so she delivers invaluable insight into that well-oiled cultural machine.

This post covers:

What are the key elements of a great engineering culture?

Engineering culture is influenced by a lot of things. You've got your overall company culture, and on top of that, you have aspects specific to engineering. Having a great culture means to me that people are happy and healthy, they're doing meaningful work, and they can grow as individuals.

Many things contribute to this. The factors I care about the most are having a diverse team, seeing yourself represented in others, having psychological safety, showing respect to one another, being kind, and having autonomy so you can make a difference to the team.

Companies that embrace these values tend to do well.

Be hard on problems, not people

In terms of engineering culture, we have more particular values. We are hard on the problems, not the people. For example, if you break something in production, we focus on fixing the process that lets you get to that point, rather than blaming the person.

We want people to ask questions and grow as engineers, because technology changes so fast; it's impossible to know everything. An important aspect of engineering culture is to embrace that.

Prevent burnout

It’s fantastic to be passionate about your work, to have a sense of purpose, and to buy into the mission. But you should be able to go home and enjoy life as well. A common perception is that engineers should always be coding, and not do anything else, but it can be too much.

You want to avoid burning out. Your work needs to be part of your life, not your entire life.

What is the engineering culture like at Monzo?

It’s genuinely the best place and the best engineering culture I've worked with. When I was running a consultancy business, I experienced different types of engineering cultures. Monzo has the kindest, most empathetic and smartest team of engineers I've ever worked with. Everybody is trying to leave everything better than they found it.

Default to transparency

My favourite thing in the culture here is that defaulting to transparency is a key value for us. It doesn’t mean everything is transparent, but we keep as much in the open as possible. This includes engineering proposals as well.

When somebody is looking to make a change to the architecture or to the culture, they write a proposal, and anybody in the company is free to comment and to share their views. This way, everyone can see what's going on. Everything goes through Slack, so everything is visible.

Slack is one of the pillars

Slack is an important tool from a cultural point of view as well. One of our senior engineers built the Guys bot, which pings up on Slack if anybody uses the word “guys.” It’s not an inclusive phrase.

We've built these things into our wider culture by using our engineering skills to create tools. I love how these gently nudge people to live out the key company values.

Share experiences

It’s great when senior engineers share their knowledge, experience, and make everyone feel safe along with them. A great example is when one of the senior engineers gave a talk about everything they broke at production at our very first lightning talk session. The ultimate message was how it can happen to anyone, and we fix the root causes, rather than make people feel guilty about it.

The people around me every day are the best part of our engineering culture at Monzo.

How do you make sure new developers fit into your engineering culture?

Cultural fit is intangible

The problem is that cultural fit is intangible. People often talk about cultural fit without being able to define how somebody could fit into it. You can easily end up with a homogenous group of people who all have similar strengths and weaknesses.

We check for value alignment

We think of cultural fit in terms of alignment with values. We put out our values and our personality on social media and on other channels. Most people who come to work for us have a good sense of what we stand for and what we expect.

In the interview phase, we check if our values are aligned, and we try to understand what a candidate could bring to our culture that may challenge us in a positive way. Obviously, we’re looking out for dangerous misalignments, and naturally, we look at technical qualifications too. We have different types of interviews.

Cultural fit goes both ways

Cultural fit is not a one-way process; it has to work for both parties. You need to make sure your candidate has an opportunity to buy into your engineering culture and to make sure it's right both for them and for you.

How do you measure if you have a good engineering culture?

It’s a subject of constant change. As the company has grown, we’ve had to formalize this, because having 20 engineers is different from having 200.

Regular surveys

We use a tool to survey everybody in the company every month. We ask questions like how they feel about the office, the level of management spot they’re getting, happiness with the type of work or their pay. It gives us a picture of how happy everybody is, so we can drill down into certain areas to see if we need to fix them.

Squad meetings

We started doing squad health checks recently. We get the people who work together in a room, and we go through a set of questions to see what aspects of their work they consider healthy or unhealthy. It’s interesting to work out how different factors play a part in people's happiness and in the culture.

Regular feedback of every type

We have a strong feedback culture. Some of the information we get is anonymous and it's aggregated; we encourage people to give direct feedback, and we have tools for that. Plus, we’re trying to build great manager relationships, so if people have concerns, they have channels to go through.

Make sure it feels right

We try to measure it, and as managers, we have a general awareness on the state of our engineering culture. We frequently discuss this on our weekly all hands with executive level managers. We’re vocal about the cultural aspects of working at Monzo and how we can improve it.

So, everybody is bought into it.

What can tech leads do at Monzo to build your engineering culture?

For context, our tech leads are individual contributors, not managers. They work to foster collaboration between our product managers, our designers, and our engineers. We don't always have one in every squad.

In our model, we have squads, teams, and even larger units called collectives. We have leads at a collective level; they are responsible for all the squads within their collective. Managing system design, architecture and results on a technical side is their job.

They lead by example

They also drive forward goals, for the squad’s delivery and everything else. They work closely with engineering managers to find opportunities for their reports. They play an important role in culture. They can promote the values, and they can put forward learning opportunities for others.

Engineering managers handle engineers’ progression, performance, well-being and growth. Tech leads can lead by example; they can come at these conversations from another angle.

So, tech leaders have an important part to play in creating a positive engineering culture.

Empowering all

We’ve been working to empower everybody to realize they can be a leader when it comes to culture, even if they don't consider themselves leaders.

How do squads and collectives work at Monzo?

We introduced this system in 2019, because we needed to refine the engineering structure as we grew. We loosely based collectives on the Spotify model, they're similar to their tribes, but we gave it a new name.

Squads work one issue

Squads are smaller groups of people working on specific problems. Their sizes vary, but we stick to small squads and use the pizza rule as a baseline. Squads are cross functional as well, so they might have a product manager, back-end engineers, web UI people, or mobile engineers with a mixture of designers, user researchers, etc.

The point is that they're formed to solve a problem via cross-functional collaboration.

Squads with similar tasks are a collective

They work alongside others within a similar problem space; it’s what we call a collective. Within the ops collective, the main domain is customer support. We build our customer support software in-house.

We have several squads working on that, and we’re building systems that can facilitate all of them getting the help they need. We have other squads working on things like scheduling or machine learning, and so on.

How do you define a bad software engineering culture?

For me, it’s what we discussed as the positive aspects of engineering culture but flipped on its head.

Lack of diversity

Off the top of my head I’d say having a homogeneous team, as I consider the lack of diversity dangerous. Diversity can help you make better product decisions and make better decisions for everybody.

Lack of psychological safety

If people don't feel safe, they start pointing fingers and throwing blame over things going wrong. It may be about making mistakes, not finishing on time, or anything else. It leads to people trying to cover their backs, and you end up having a culture that doesn’t facilitate great work.

Pushing people to work all the time

We've seen many different viewpoints, especially on social media, about what it means to work hard, to be successful and how much of yourself you should give. We don’t stop anybody if they want to put in long hours, but we’re careful not to make anybody feel like they have to work every minute of the day. Nobody should feel like work is more important than their life.

In a bad culture, you end up dictating how people should operate. In a great culture, people have the autonomy to do a good job and to stop whenever they need to.

What behaviors should managers look out for to preserve a good engineering culture?

Watch out for brilliant jerks

Engineering managers should be careful with the brilliant jerk behavior. They’re developers who are fantastic at their job but completely unable to work with others. They may bring a lot of negativity and have a negative impact on the culture.

On one hand, they’re fantastic engineers; on the other hand, they are a cultural drain. If you're not careful with managing this situation, that becomes the norm. You can’t just let it go because they deliver great code.

It’s a tough one to manage. The important thing is to work out your company values. If your view as a manager isn’t in line with the company values, you have a wider problem to solve. But if you’re addressing this with a person, you need to have conversations about what's important to them.

  • Do they see themselves as an individual or as part of a team?
  • Do they care about the people they work with?
  • Do they understand the impact of their actions?

These conversations should be the starting point, because often people don’t consider this. Don’t just jump to the conclusion that they’re bad people.

What steps would you take to improve an engineering culture?

An engineering culture can always evolve, even if you feel like you've got a great one. It’s easy to get complacent and recruit new engineers, and things change. You need to mindfully keep building your culture, or it’ll fall apart.

Culture can be influenced from different dimensions.

The impact you have one on one, talking to others directly, whether they are your peers or reports, has a big role in that. You can also influence it on a group level, and you can look on an even wider scale, like disciplines across the company. At Monzo, engineering is a discipline and design is another.

Assess your situation

The first thing is to see where you stand, and how people feel. You may be at a good place, moving in the right direction, or there may be challenges. Then you should look at the practical things you can do and prioritize which aspects have the most impact.

Communicate clearly

It’s a key point to communicate what you're doing. Make sure people understand the reason behind your suggestions, ask for their opinion, and change your tactics if they feel strongly against them.

You should clear your expectations towards people about what they should do. You may want to communicate the company values, the engineering standards and all the principles you expect people to follow.

Build a progression framework

We have an engineering progression framework, basically a software engineer career ladder; I'm currently helping to create its second version. This gives people a shared set of expectations about what it means to be a level 1 or level 2 engineer. It keeps pay fair and helps in setting goals for progression.

Within that, we break it down into different areas. The first is “mastery,” which is the technical skills we expect of engineers at certain stages in their career. We talk about the scale of impact they should have. We also explain communication expectations, or the influence on their peers and leadership.

We’re trying to bring in the cultural aspect of our company values and what we encourage people towards. We’re explicit about what is and isn't okay on these fronts, and it helps a lot.

How can you effectively manage changes in your engineering culture without being forceful?

This depends on the type of change you're trying to make.

If it's a low level, foundational thing, the change will take a while, and you take everyone for a journey to get to the result. These are about talking, listening, communicating the benefits and getting people to buy in. Some people may not agree, but you’ll have an opportunity to listen to them and tweak things as you need to.

Sudden changes are tricky

It’s different if you suddenly need to make a big cultural change.

For instance, if you were to decide people aren’t allowed to work from home anymore, their situations, their workflow, and their lives would be disrupted. It’s not a realistic example, but it illustrates the point well.

Again, communicate clearly

Clearly communicating the decision-making process and the reason why it’s important for the business is essential. You can’t make a decision like this lightly, so you need strong reasons to not make it a conversation. You better have your engineering culture and trust built up enough to be able to pull something like this.

Provide support

Your people need to have enough support mechanisms around them, so whatever change you need to make without asking them, they’ll still feel comfortable and safe. It comes down to the trust and relationships you've built up. That’ll allow you to make hard things happen at the right time.

How do you keep the engineering culture intact when scaling up an engineering team?

Make everything explicit

As your team grows, you need to become more explicit. The things you naturally do, the unspoken rules and expectations, work well with a team of 5 where you all know each other. With 500 people, you likely haven’t even met everyone, let alone gotten on the same page about cultural expectations.

Be ready to change

The first point is acknowledging that your culture will change as you scale engineering. We've had to get explicit about defining the culture we want.

It's about how you can build processes and what tools you need to support them. We have our feedback tools, monitoring tools and so on. We also have simple things like posters on every toilet door saying, “It's okay to have a tough day at work. It's okay to cry. It's okay to ask for help.”

It's important for people to share these messages at scale.

Would you add anything else to the topic of engineering culture?

The main thing for me is to be mindful of the culture you want. In engineering, it's very easy to measure output in the amount of code delivered and in how much work we're getting through. But taking a step back to look at the culture, to look at the role it plays, and to look at how you can grow people around you is important for your toolbox.

We found that people buy into this, and they want to join Monzo for the culture. For me, it's been fantastic to join an amazing team, to keep building it, and to have brilliant people around to make it happen.

About Sally Lait

Sally Lait is currently a Senior Engineering Manager at Monzo, an exclusively digital bank. Monzo is an incredibly fast-growing FinTech company. They started in 2019 with 1.3 million customers, and by the end of the year, they had reached 3.6 million.

Her role is to sit on the leadership team representing engineering and operations. She’s also responsible for the web as a discipline at Monzo. Alongside that, she works on initiatives for management like progression framework. She manages engineers and managers as well.

Let's build awesome things together 🚀

At Apex Lab, we're experts in end-to-end digital product development. Our remote-first company operates with a flexible schedule, allowing us to help clients tackle difficult challenges worldwide.

Want us to build your next idea or upgrade your existing product? Our experts cannot wait to work with you. Get in touch with us and let's make this happen. 💡🚀