Learnings as an Engineering ManagerOct 29, 2021 // 7 min read
So it's been about a year that I can call myself an "Engineering Manager", though I've only been officially promoted to that title about 4 months ago. I obviously cannot call myself an expert but, I've learned a lot over this last year and I'd be remissed if I didn't share those learnings out to the world.
To be honest, the first little bit, I had no idea what I was doing. Being thrown into being a leader of a team was scary, the imposter syndrome was very real. But, I've had great managers in the past and a boss who was there to support me the entire time. I knew what a great manager looked like, how they acted, and how much of an impact they had on me. Now, it was time for me to figure out the secret sauce of being a great manager for myself.
I thought back a lot to times my previous managers made an impact in my career and it always came back to having a steady, transparent, and open leader, someone who was there through thick and thin. I want to be that, and I will always strive to become that. Having someone to lead you that isn't deterred by pressure situations, and rather provides a helping hand. Someone who will tell you how it is because you deserve to know that. Most importantly, someone who let's you know where we're going and values your input on that.
I took those main tenants and ran with them, I wanted to become the manager I've always wanted for myself. I had a small team to put this into practice on and over the first few months, I could feel that it was working. I was able to provide support by being a mentor, leveling my teams skills, having the conversations where I gave critical feedback in a way that could be well received. I could feel the team starting to gel, we respected eachother as coworkers but more importantly as human beings. I always want my team to be able to come to me with anything, and they did. We worked together through complex problems and had open dialogue on the best ways to solve those problems. We iterated on our process to make everyone's lives easier. It felt great.
Granted, there were bumps along the way, there always is. It's very hard bringing new engineers into a world where previously, I was the holder of all the knowledge. The year prior to this, I was the only engineer on the front-end team writing every feature and making all the decisions. It was time to let go of that a bit, because if I didn't things just wouldn't scale. That's scary, giving up control of something you've held the keys for. But more importantly, giving people the opportunity to immediately have the trust to take the keys goes a long way. I always lean towards giving trust up front, instead of letting that trust be earned, and I think that was a really important thing to do in the situation I was in.
After having a small team, it was clear that we needed to scale beyond that in order to support the products we were building. There were way to many things to do and not enough time in the day to do them. It was time to scale!
Hiring as an engineering manager I think is one of the most important functions. When it came to doing hiring this round, I wanted to do it the right way. Our industry is cluttered with gatekeeping culture around hiring. Between whiteboarding sessions, high pressure challenges, and the time sink that comes with finding a new job, it's so stressful. I've been there, I know oh so well what it's like to be on the other side and I've experienced some terrible interviewing processes. The thing is, it's not that hard to identify high quality talent without having to do all those things our industry says we have to do.
When I interview a candiate the first step is getting to know them. I talk with the candidate and try to understand: where they came from, how they got here, and what they're really looking for in their next role. I use these data points to start to identify things like: work ethic, character, and what kind of a human they actually are. My goal is to find extremely kind people that know the work they have to put in to become a successful engineer. To me, this is way more imporant than technical ability.
The flip side of this interview is I want them to get to know me, the company, and what we value. I want them to be bought into where we're going just as much as I'm bought into it. This is something, in my experience, that is always skimmed over. If I can find someone who is extremely passionate in those things, I know I've got a good human on my hands.
Obviously, identifying technical capabilites of an engineer is important but I really try to do that the right way. Right now, we give our candidates a light (really light) take home challenge. They are essentially given a project brief where they identify problem areas, how they would tackle the problem, and anything that isn't fully defined. The ability to do this really lets us know where their head is at without putting them into a high pressure situation to figure that out for ourselves. We've found good success doing this, and have gotten nothing but postive feedback from candidates. The last part of our technical evaluation is a pair programming challenge. I know what you're thinking, this is a high pressure situation that leads to bad results. I know that, but we're doing it differently. We're taking steps like, giving the challenge to the candidate days before so they have time to get to know the project they will be working on. During the time we're working on the project we're actually pair programming, not just watching someone struggle. We make the problems we solve as close to what an engineer does everyday, we don't want to put a challenge in front of someone that is out of reach. The goal of this excercise is understanding how this person approaches a problem, what questions they ask, and generally gauging their familiarity with what we do day to day. The imporant part of this is approach this as the interviewer with as much empathy as we can. We know it's high pressure, so lessesn the pressure, we all know what it's like to be on the bad end of a challenge like this. We work together, we don't let the candidate get to a point where they're stumped. Again, we've gotten nothing but positive feedback from this excercise.
So I covered a lot here, the main takeaways are at the end of the day you're trying to hire people. So treat them like a person, not just another candidate trying to get a job. These are very real experiences that can have a lasting impact on someone's career if it is done poorly. Even if we end up passing on a candidate, we want them to remember our interview process as a positive one.
After we started really to grow as a team, it was now time to make it a great place to work. I wake up everyday so excited to get started, even going into days that I know are going to be stressful. I want that for the rest of my team. I think the key to this is really hitting home the message that we're all in this together, and I can say this all I want but how does this actually come into fruition? My past managers have never been above doing the work I was, they were leading by example. I think that's key, being someone who is not afraid to jump into a tough problem, invest time into the team, and treating everyone with the individual attention they deserve.
So, how do I do this? First, it's important not to overdo this. Consant check-in's from your manager leads to breading a culture of micro-managing, you have to find a balance. I do set time to talk to each team member individually, but I rely a lot on them to come to me. People don't just come to you without them knowing it will be valuable, especially engineers. It doesn't feel great when you have to reach out for help, but the culture I'm trying to build is that reaching out for help is expected. It helps people solve problems faster, the right way, and keeps things from getting off the rails. When these situations occur they have my full attention, I want them to know that nothing is more important than me lending a helping hand at this moment. That's value. We work through things together, they learn, I learn, and whatever issue they had ends up being such a great moment.
The last thing I wanted to touch on with the day to day is that while being a manager your time is valuable. But the nice thing about being a manager is that you're almost totally in control of where you spend your time. Choose things that are impactful on others, and not yourself. Relay the skills and knowledge you have to your team and you'll notice that the things that get done, are the way you would have done them. Again, people come in with their own ideas and you should celebrate that. Diversity of thought in a team is important and it's huge to give people that rope to be able to solve things their way. Eventually, things will start to be built in ways better than you could have come up with.
I'm right at the start of this journey as an Engineering Manager, and have so much to learn. There's situations I haven't had to experience yet that I will have to figure out how to navigate for the first time. But, I'll always lean back on to the tenants that have got me here: being transparent, a steady voice, and an open leader. Starting from there, I'm sure I will be able to find my way to solutions I've never had to solve before. At the end of the day, I'm dealing with human beings who rely on me for many things. Everyone should be treated with the respect they deserve.
I really hope the building blocks I'm putting into place now on this team will make a lasting impact. I'm going to do the best I can and that's all I know how to do. I'm sure a year from now my thoughts and approaches to these things will become better. I'm excited for that, I know that there's so much room for improvement. I hope though, one day I can look back and see a team that has the same tenants and values that I do for myself. That, is my number one goal.