Hello! What's your background and what do you do?
I'm the co-founder and COO at LinearB. Before starting my own company and growing the go-to-market organization here, I was a VP of Engineering at CloudLock (a cybersecurity startup).
At Cloudlock I had all of the development roles from individual software developer to team leader, to a manager of a few teams. I even did a little bit of technical support management in parallel, and then kind of ascended my career, becoming a director of engineering and then eventually a VP.
Before CloudLock, I went to school at Villanova University. I have a formal computer science degree and that's actually really where I first started coding. I was doing Java, Ruby on Rails, that type of stuff. Before going to school I was always playing with computers and software development stuff. I built computers, sold them to people in my local area, sold them to my friends, kind of had a mini business.
How was your transition from software development to management like?
When I was doing software development as an individual contributor, my world was really focused around myself. So I would kind of just know what I needed to do. I'd come into work. I think about the problems I needed to solve and bang out code. I was working at a startup company, so I was probably coding to like 10:00 PM, a lot of nights.
But it was really all about myself. Which I think is one of the big differences when I became a manager. That was an opportunity that came to me as the startup company was beginning to grow. We had a VP of engineering at the time named Minkah. One day, Minkah came to me and said, “Hey, you know, we need to start getting some engineering team leaders here, startup’s doing really, really well. You know, you're doing well as an individual contributor, you were the second employee hired at this company, you kind of know a lot. I think you're going to be great in this role.”
So that was my opportunity to step into a management role. Now, I didn't really know anything of what it would be like to actually be a manager, but that's how the opportunity came to me.
Did you feel like you were prepped to be a manager? Or was it more like being thrown in the deep end?
Yeah, so it's a little bit of both. I was never trained to be a manager in any way shape or form. I think that's one of the things that makes it really hard to jump from individual software developer into that management role is there's no school for it. At least for me, there was no formal training. It's not like I was working with the VP of engineering and kind of being groomed to be a manager. That's not how it happened for me and that's not usually how it happens for most people.
Now, the one thing that I did have kind of innately, I think compared to most developers was a little bit more of the communication skills. I always did work pretty well with our product owner, understanding the customer needs, and making sure I was developing something that was useful. But no formal training, no people management.
When did you step into an upper management role?
I think what you mean by upper management is like managing managers or maybe a director of or a VP type level there. I became a director of engineering maybe when I was 25 or 26, something like that. That was a few years into my professional career. I kind of did the normal college path, came out at 21, was an individual contributor for like three years, took the team leader role then maybe five years in, I started managing managers. And again, it happened in a similar way. I'm at a startup company, it's growing rapidly, we're hiring engineers, and we need to figure out who is going to step up and kind of be a manager of managers.
When you first stepped into the team lead role, what was your day-to-day like?
Yeah, it was tough stepping into the team lead role. Especially since I still had coding assignments on my plate. It's not like you just step into a manager role and all of a sudden all the code that you are working on, at least for me, suddenly just goes to someone else. So I did have my regular coding assignments, which I think actually hurt me because I also had all the responsibilities of what we were doing for each iteration. The unblocking people's work, making sure all the other developers on my team were assigned to work on their problems.
Working with each developer, you have the HR aspects that kind of hit you out of nowhere, especially if you've never done this before. The reason that I say continuing coding kind of hurt me in that transition, is because what I should have been doing early on is focusing on all those other things. People management, making sure code is flowing through the software delivery pipeline, iteration planning, stand-up coordination, unblocking engineers, helping them with their careers. But I also had these coding assignments on my plate. So if I look back and could change something, I would have liked to actually give up more of that coding earlier on.
What was that day-to-day like as a player/coach team lead vs. once you started managing managers?
For me the player/coach role was always about striking the balance of how close to be into the code versus how am I going to make each person on my team effective? Don't get too far away from the code and you don't know what you're talking about, but don't get too close to the code because if you ignore your team and people, you're not really doing your job.That was the life as a team leader.
When you become a manager of managers, that is when you need to switch and start thinking more strategically. How am I going to enable multiple teams, three teams, four teams, five teams to be effective? Where are the bottlenecks in our entire software delivery pipeline? What's the hiring plan? How much money do we have to spend? Are we on track for our strategic projects? You're also interacting a lot more with executives, maybe getting closer to the CEO or the VP of product. So you're kind of like refining yourself strategically. That's what I found.
What are the biggest challenges you've faced so far? What did you do to overcome them?
Yeah. I think the biggest challenge that I faced as a team leader is basically not doing other people's work for them. So you're coming from the individual contributor, in that role you're used to being rewarded with really fast dopamine hit cycles. I solve a problem myself, I get the reward.
So having that tendency to go in when the team is having an issue and solve it yourself. Not doing that, and saying, I'm going to take a step back. I'm going to take my time to educate my people on how to solve the problem, but not necessarily solve it. That's an issue that I kind of faced early on.
Becoming a manager of managers is also tough. One of the challenges is coming in in the morning and saying, what am I going to do today? Like, what do I literally do today because I'm not tactical anymore. I'm not really, hands-on, I'm further away from the code. And so identifying high leverage points or areas where it's like, if I focus my time in this strategic area, this is going to help five teams.
So you're coming in in the morning, you're thinking to yourself, am I working on things that will help all teams right now? If the answer's no, you're probably not doing the right thing. If the answer is yes, you're probably doing the right thing. But a lot of the times you're in-between, you're trying to find what that thing is going to be high impact. So I found that kind of difficult early on you.
What has been the biggest surprise so far? Something you didn't expect?
I think what surprised me most is at least 50% or more of the problems that I faced were people focused and not technology or code focused. You're going to have five to eight people on your scrum team or combine team or squad or whatever you want to call it. They all are going to have problems. They're all working together. There's interdependencies, there's prioritization of who's doing what, understanding what's happening from a product perspective. Relationships solving, people problems, even prioritization is kind of like a people problem actually. Of course you have to know some of the technical stuff there, but it's more like, okay, we know what we're going to do, who's going to do it when and how?
What's the best advice you've received about being a manager?
Some sound advice I received is that if your people are doing well, then you're doing well. If your people are thriving, then you're doing a good job. So if you think of it that way it helps. Okay, what am I going to do today? How am I going to approach all things that come at me during the day?
Another thing that comes to mind for me is to set goals for your team. Don't be afraid of KPIs that explain things like the behavior of how your team is working. That was another thing that I was a little bit afraid of going from individual contributor to a manager. I didn’t want to grade my team or my people or something like that. But what I really realized is it's actually nothing about that. It's actually, can I define the behavior of how you want your team to work, and your people will actually respect you for that. As long as they're involved in that process and things actually go way better than kind of just being a softer freestyle.
I'm not saying that you need to go in and measure the performance of every individual person. What I'm saying is software development is a team effort. So measuring things like how long does it take (from code perspective) to go from first commit to releasing the PR process, and the review process in between that phase? How many bugs are coming into your system? Where's your team having to spend time? Are they getting to spend time on new stories and new work or are we bogged down on support? A lot of those kinds of team-based metrics will help you be a better leader, and they'll help you enable your developers to do what they want to do, which is deliver great value.
Final call to action! Where can we go to learn more about you?
I am the host of the Dev Interrupted Podcast: https://spoti.fi/3aJi3oG
You chat with me directly in the Dev Interrupted discord community: https://discord.gg/tpkmwM6c3g
And if you really want to learn more about me and some of my beliefs about software development, read a few of my blogs: https://linearb.io/blog/