Recruiting experienced software engineering managers is a massive challenge.
This just gets worse when your company is in a phase of fast-paced growth. You need to rely on both external and internal talent sources.
Training engineering managers is as important as getting new developers on board, but even harder. So we had a chat about this with Matt Greenberg, at the time of the interview VP of Engineering at Credit Karma.
In this interview, Matt breaks down how engineering managers are trained at Credit Karma, providing you some hands-on tips you can apply in your company, improving the training program for your future engineering managers.
I'm the VP of Engineering at Credit Karma. I’ve been here for about five years, and I’ve seen the company grow from 200 people to almost 1,600. Before this, I was VP of Engineering at another startup that didn't quite get to this level, but it was a good run.
Editor's note: Since recording this interview Matt has joined Reforge as their CTO; running product, engineering and design. You can see from this interview that Matt is passionate about coaching and next year he’ll be creating a program around engineering leadership at Reforge. Check his Twitter here.
This is a good question, but I'm going to give you a bad answer.
You don’t ever really know. Usually, when someone tells me they want to be an engineering manager, I try to talk them out of it.
People tend to think of engineering management as an opportunity to become a leader.
In reality, accomplished engineers are also leaders; they’re involved in everything. You get opportunities to mentor and you have a say in project leadership decisions and technical decisions, whether you're an individual contributor or a people manager.
Being a people manager entails all the administrative aspects of leadership. So, a lot of it comes down to hiring and firing people, performance management, dealing with HR or legal issues, finance, budgets and all these other things.
I think a lot of people want to become software engineering managers for the wrong reason. Also, many people get out of it once they realize what they're doing. You should look at the end goal. Do you want to be a senior leader managing hundreds of people, or do you want to be an accomplished person on a small team?
If it's the latter and you're really just looking to be an engineering manager at a scaled company. At Credit Karma, we have positions like staff software engineers, senior staff software engineers, principal engineers, and so on. That's a much better tech career path for most people, unless they want to do the other management stuff as well.
We usually look for an opportunity to give them a chance to try it. At Credit Karma, we have a People Management Development Program, where they take a rotation of six months in a trial period. They go through a cohort-based training with a bunch of other potential leaders, not just in engineering.
They learn about a lot of the administrative components of what managers do. If it's a success on both sides and the person wants to continue on a path of management, and if we think they're doing a good job, then we give them the opportunity to take on the role full-time.
It typically takes six months. There are situations where it is shorter, and sometimes it takes longer. But it’s usually about six months to get you through most of the administrative tasks you end up doing in leadership.
You get to participate in some planning and budget management. You go through a performance management cycle, where you're helping people improve. There's a whole slew of things in that six months to get a good view of what it looks like to be a people manager.
We try to provide as much internal support as possible. We have an 800-person engineering team, so we have a lot of managers, and you want to give your people the opportunity to grow. A lot of our best leaders are homegrown.
Being a new engineering manager is hard, since you're doing a lot of things for the first time. You've seen them from the other side, you had hard conversations, and you've received feedback, but giving it is totally different. You want to make sure your people have a lot of support going through that process.
We have a program internally at Credit Karma, called Credit Karma University.
Within that program, we have both internally and externally hosted workshops that people can take classes in. So, there are workshops available for people. We also have a professional development program, where people have $5,000 a year they can spend on classes they want to take for self-development.
All that said, being a successful people manager isn’t likely to come from external classes. They don’t teach you the internals of your company, and they tend to lack the wisdom we've got in growing companies today. I think that’s why the more modern, small group training classes have been getting more credibility, and people have been looking for coaches.
A program called Reforge is doing great teaching people these things. In the Bay Area, we have a number of classes for conscious leadership that people find value in. A lot of people have pursued some form of coaching. Our focus is to make sure the network internally is as effective as humanly possible.
It's not as good as it sounds. We’re trying to make improvements all the time, but we feel it’s never enough.
Everyone involved in this is such a high leverage person for you. So, if it goes badly, or if someone doesn't get the attention they need, it weighs on all of us for months. Anytime you're making mistakes in people management, it has a compounding effect.
Most people have a model for trust that is based on a model they have built their entire life, usually around friendships. Especially young people, who haven’t been parents yet; they're used to the friendship model of trust. They try hard to be friends with everyone on their team, and it makes giving feedback or dealing with difficult situations extra hard.
So, a big challenge is giving people a model for professional trust, where you care personally about someone but still set boundaries, help them set targets, and give them feedback. It requires a mental shift for most people. People who don't figure this out really struggle to be a successful leader.
I see that happen all the time. People don't know how to interact with their team in a new role. They try hard to keep being friends with everyone, and everything falls apart.
People understand the accountability model, and all of a sudden, they're accountable for everything. Then they get way into everyone's business, and they don't understand how to delegate or get extra out of the process. That’s a recipe for disaster, as no one will enjoy working with them, and they will be more likely to fail.
Lastly, it's just overwhelming. You end up having to do plenty of new things, and a lot of it is very different. You could end up in situations where you think you're doing your job well, but there's another critically important aspect you have no experience with, and you do terribly at it.
No amount of prep helps you in that situation. You just have to be a learner who's adaptive and figures things out. It's tough.
I tend to think in frameworks and models. It's generally how I work to scale. Anytime you can turn something into a system, you can keep repeating it. So, we build a new system for building trust.
We have articles people can read, like Brene Brown’s “Braving Framework”. We talk to people about setting boundaries and what accountability looks like, and we give them these models. That doesn't mean they’ll instantly do it well, but at least they get a framework to learn from.
A cohort is a group of people who are going through a similar set of experiences at the same time. We generally have two cohorts a year who are going through leadership challenges, either because they're new to Credit Karma or new to people leadership.
They build a community together where they give each other feedback and discuss problems. It’s an important route to getting feedback and solving problems. They have a different type of trust than they might with the direct management chain.
The situational leadership model talks a lot about how you go from rookie to expert at something. First, you get directed examples for how to do things, then you get coached on those examples. With a lot of support, eventually, you’ll get it down. We try to make sure people know this model when they're getting into something new.
Early on, you give them a lot of directive advice and coaching on how to do something, and they’re going to do it the way you want them to. Over time, they get more autonomy to do it their own way, but they’ll get a lot of coaching and feedback. Later, you transition that coaching and feedback to a generalized support. It's available when they need it, but they’ll have that skill down.
You need to give people the vocabulary knowledge so they understand it, and they start using it. Early on, you say, “I'm going to be directive for now. I’m going to tell you what to do. But there's a reason for it, and there's a path for you to get past this.”
Also, once they understand, they can come to you and say, “I'm struggling right now. I need you to be directive with me.” It creates a sense of safety, and it makes the conversation more efficient.
There's value in understanding the learning cycle. Maybe you’ve received a lot of performance reviews, but you have never actually given one, and you need direction on how to do it. Maybe you’ve done it a lot with your previous manager, so you don't need direction, but you’re hoping for coaching instead.
As the manager, you might say, “I do it in a different way. I think my values are important, so I want to be directive about them.” It shows you the misalignments, and you get to have a productive conversation.
It's common in tech companies for people not to know what a manager is. They get mixed up between the role of ICs and the role of management, and there are lots of project managers and product managers as well. Give people a framework for understanding where they sit in the organization and what's expected of them; otherwise, for them, management roles just become buckets of everything, and every team starts to operate differently.
That can be good as long as the emergent behavior is intended and the people who are doing it have experience, but it's not good most of the time. Startups are really cool, so they’re trying to scale and do crazy things. They’re trying to become a unicorn, trying to become a public company, and trying to become one of the top five at whatever they’re doing.
Startups have coined the ability to go as far as the people take them. A lot of them have people who are stretching into new roles and doing things they've never done before. And every year, they get a new role. That's true of me in my career.
Over the last 10 years, the role I started at every year was larger than any role I'd ever had in my career before. And that just keeps happening as companies grow. They're hoping to keep putting themselves on the backs of the people and seeing how far the people can get.
You see a lot of these companies where someone's never managed anyone before, and eight years later, they're managing 800 people. That kind of growth is crazy. You only get there if you seed two things.
1. You make a path for your people to keep growing.
2. As your company grows, you find the right people to be additive to the environment.
So, you need to recruit. You can't just hire entry-level people and expect the company to grow. You want to hire senior people, managers, directors, and VPs who have seen the game before.
There's a lot of value in that, but you want to make sure there's a path for the people who are growing with the company.
Companies make mistakes on both ends. Either they're not bringing in enough people who have seen the game before and who have wisdom. Or, they veer too far on the other end, and they don't believe their internal folks are going to be able to grow with the company.
We all start somewhere, and we all grow in some way. You have to be willing to take some risks to get there. If you hired all your engineering managers externally, then anytime anyone wanted to become an engineering manager with the potential to do so, they would simply leave.
I think training engineering managers is usually a struggle; it's not easy. We talk about frameworks and systems, but at the end of the day, everyone's an individual person. You may train an army of new managers, and start to bucket everyone into categories, but they’re still all individuals.
The more senior managers get, the more it becomes about noticing when things are going badly and doing something about it, so it doesn't spiral out of control. You can’t settle when things are just okay. You should try to make them great. Greatness is what lifts us all up and takes us where we want to go.
A lot of times, the key is to look at the people on the lower end of the middle of the pack, who aren't bad enough that someone has to do something about them right away, but they aren't making the company better. It becomes important to figure out a path to do something about that quickly.
A key thing I learned from scaling is that each new person you're bringing into a role should make it a little bit better. They should be at the 65th percentile of the people of that level, so it's always moving you forward. It also means you have to improve the people who've been there a long time.
I've been in environments where people stayed forever, and no one did anything about them. No one coached them into new roles, they didn't get fired, and there was no process. Then, the good people start leaving, so you're left with a pack of people who can't get things done. That's hard.
When you see someone who's really struggling, you have to do something about it. When you see someone who's just doing okay, you also can do something about it.
Address it directly. A million times out of a million, that person wants to know. So, if you see someone struggling, just tell them. “I see you're struggling right now. Your team is unhappy.”
They might say they don't agree. Perception is often reality, but you still have to do something about it. It's better if they know that your perception is that they're not doing well. It's always better to know, and it’s always better to say something. That gives you a common context and awareness in which you can build from.
1. When you see someone moving in the wrong direction, you have to address it. If they never know, they'll never work to fix the problem.
2. You need a plan to improve it, and you handle that internally.
If you don't know how to solve the problem, get a coach for it or send them to a class. Whatever the case may be, you want to create an actionable plan you can both hold some accountability to.
Another important topic is, what do you do when someone is absolutely crushing it and does great work? You keep giving them more stuff.
The idea is to keep pushing until they're not doing fantastic anymore and to keep seeing how fast that rocket ship goes with them. You have to keep checking in and giving feedback, but you want to grow those people as much as you can. If you want your company to 10X or to double every year, then some people on your staff have to do that too. Look for the people who are doing great and keep pushing them and yourselves as much as you can.
One of the mistakes I think people make is they see someone doing great, and say, “I don't know that I want to give them more. I'm worried something will happen,” and you create all sorts of worries for them. In reality, you just want to give them the safety and the confidence to keep pushing and to see how much they grow.
I'm super lucky that I've gotten more in my career all the time. I also see people who don't, and I wonder where they'd be if they had. I'm lucky enough to have gone as far as I have, because people keep giving me the opportunity to grow.
There are people out there who are trying to take it. Sometimes, they get work over the people who are better, but they aren't out there trying to take it.
Part of your job as a leader is to find the best people and to keep giving them more work. Give it to people whose results are good, instead of handing it to people who are asking for it. That's how you get successful diverse teams, where everyone's getting the opportunity to grow.
You think through who your best people are and if you can give them more. When you find yourself with 10 direct reports, you say, “I need to fix this problem, delegate more and grow my people.” The worst-case scenario is running into a leader who thinks, “No one on my team is ready.”
It's just not true. That's how companies get stuck instead of grow. You have to find the great people and to keep giving them opportunities to grow. No one's perfect. Don’t expect anyone to be perfect at a job they’ve never done before. You have to trust that they'll try, and they might surprise you for the better more often than you think.
The only other thing I'd say as a closing note is that people leadership can be stressful and complicated, but it’s also fun. Sometimes, we all forget about the fun part, but if you're having fun, your teams tend to have fun too. When you get all stressed out, your shadow stretches really far.
The more senior you get, the more people you lead, and the more you want to be around a group of people who know how to fill each other's buckets, to make them happy, and to have fun together. You exemplify the organization you want; your shadow is large. So, try to be your best you, and have a good time doing it.
🚀 If you need developer help for your project then click here for a FREE consultation.
About the author:
Karolina Toth has been working with engineering managers for over 5 years. She is an internal coach, working on the most pressing management-related issues tech companies face. She is the host of the Level-up Engineering Management podcast where she talks with accomplished tech leaders of fast-growing tech companies.