Post

On Leading Technical Teams

Leading deeply technical teams can be an intimidating experience 😅 especially if you’re not making time outside of normal working hours to stay technical yourself. That said, it can also be an incredibly rewarding experience if you understand what such teams need from you. In this post I’ll share some philosophies I’ve developed over the course of my career as a leader - which started by building a global DevSecOps team at a Fortune 100 company, and elevated more recently by joining Trail of Bits to lead one of the world’s most elite Application Security research and consulting teams.

The Section 9 team from the anime Ghost In The Shell: 2nd Gig

People > Process > Technology

The phrase “People, Process, Technology” is so incredibly overused in the information security industry that I almost didn’t include the concept in this post - but it’s central to how I operate as a leader, and more leaders would benefit from understanding why this ordering is important.

First let’s talk about people. As a leader your primary job is to work for the benefit of the people who work for you. Simply put, the only way you succeed as a leader is if your people are succeeding in their work. It’s up to you to hire great talent and to ensure your team communicates, coordinates, and collaborates with one another. It’s your responsibility to understand what your team needs and to make sure they receive it - whether that’s coaching, mentorship, training, transparency, opportunities, or removing obstacles. If you need an example of great leadership focused on people, go watch Ted Lasso đŸ‘šđŸ»

Next, there’s process. Great people will absolutely leave your team (or your company) if they’re prevented from doing impactful work because of a đŸ’©Â process. On the flip side, great people can help you build great process! The key is to make things simple, easy to follow, and to be clear why a process exists in the first place. Process is the fulcrum through which your team overcomes adversity; Process is what allows your team to have an exponential impact. Great process can take good talent and make them exceptional, or turn mediocre technology into something useful. Don’t skimp on developing simple, useful, and repeatable process(es).

And finally, there’s technology. Great technology is a lot less useful when you impose bad process. Likewise, great technology is wasted on teams that can’t make the most of its capabilities - whether because of a skills gap, or a lack of personnel. That said, great talent with great process(es) can make just about any technology work - including developing custom tools to do the job when a technology doesn’t exist (or is too expensive 💰).

No Surprises

Something I always commit to my team (and to my leadership) is that - to the best of my ability - I will never surprise them. This includes everything from coaching and career growth conversations, to staff meetings, company town halls, and client deliverables. Being ready to deliver things like annual goals, quarterly business reviews, and even regular staff meetings earlier than required affords valuable time for reflection - and to gather feedback.

Leaving time for reflection and feedback is crucial when leading deeply technical teams. It means you have time for an extra pair of eyes to review your work - and to correct the mistakes your team uncovers. More than that - being prepared and openly sharing with your team (whenever possible and appropriate) builds trust. There’s no greater mistake you can make as a leader than to surprise your team - or your leadership 😬

If you want to be a dependable leader, it’s really that simple: No Surprises.

Removing Obstacles

A big part of leading and supporting your team involves removing obstacles. Sometimes this involves red tape imposed by burdensome process; Sometimes this means meeting with adjacent leaders to build consensus in advance of a project your team is responsible for; and sometimes that obstacle is you.

Being aware of what’s happening in adjacent teams prevents your team from running into (or creating) roadblocks. Likewise, being self-aware of when you’re creating roadblocks by constantly changing priorities (or micro-managing) will prevent you from becoming the roadblock yourself. Also - it should go without saying but if your team is heading toward a roadblock you can’t remove, it pays to let them known well in advance of hitting it! Remember: No Surprises.

As a leader, it’s your responsibility to identify and address roadblocks before your team runs into them. If you can remove (or avoid) the things that get between your team and their ability to do their best work, you will ultimately be successful as their leader.

Hiring & Retaining Great Talent

Although I’ve written an abridged version of this concept before, it’s important to call-out that another key responsibility of being a leader is identifying, hiring, and retaining talented individuals. I’ve broken this down into two phases for building and maintaining high-caliber technical teams - starting with hiring.

Hire for Attitude, Aptitude, and Engagement

When it comes to identifying and ultimately hiring technical talent, there are three factors I focus on throughout the hiring journey: Attitude, Aptitude, and Engagement. While degrees, certifications, and accomplishments certainly help people make it through the application filter - these three characteristics are what really matters when looking for the right talent to join your team.

The first thing I notice about someone in an interview is their attitude - about themselves, the company, the industry, and the opportunity they’ve applied for. People who get excited (and have opinions) about subjects in their field usually make for great hires, because it shows they’re at-least paying attention to historical lessons and current trends. Attitude also helps determine how well someone will fit-in with the rest of the team. Hiring someone with a bad attitude is a surefire way to create friction within your team.

Next I look for aptitude - can this person do the job I am hiring them for? Hopefully their resume has already shed light on this - but the Venn Diagram of what someone claims to know and what they really know is not always a perfect circle; this usually comes out in the interview process. That said, asking pointed questions that usually produce an opinionated responses is a good way to check someone’s aptitude. For example, I like to ask entry-level candidates questions like: “VIM or Emacs?”, “Tabs or Spaces?”, “Bash or PowerShell?”, “Burp, Caido, or ZAP?”, and “Linux, MacOS, or Windows?”. You can learn a lot about a person if they’re able to answer such questions confidently; you should afford bonus points if they do so with a bit of humor.

Then I check for engagement - what is this person doing to maintain their knowledge and develop new skills? Do they have a home lab? Are they participating in Capture the Flag events (CTFs), speaking at conferences, taking (or teaching) a training course, or submitting bug bounties? Are they publishing content like blogs or videos? Engagement is often what distinguishes a good candidate from a great one. It’s easy to confuse passion for engagement - but being passionate about something isn’t the same as putting in the work. Engaged people can point to the work they put into continuing to learn and grow, and as a result are usually much easier to onboard and train.

Retain by Challenging, Engaging, and Growing

Once you’ve hired great talent, it’s up to you to give them reasons to stay. If you’ve hired people with good Attitude, Aptitude, and Engagement - then what you need to do is ensure those people continue to be Challenged, Engaged, and Growing.

How you challenge your team is largely dependent on their level of career maturity. More experienced talent generally needs less direction from you as a leader. You can challenge them by giving more opportunities to take ownership of important projects; bonus points if the project was also something they proposed and/or helped design. For individuals earlier in their career it’s about pairing them with more experienced talent who can provide mentorship, and then assign smaller projects where it’s safe to fail. In either case, maintaining a No Surprises mindset and leveraging good time management skills usually allows you to course-correct before things go sideways.

Likewise, keeping your team engaged requires sprinkling in stretch goals, personal projects, and learning opportunities between your longer, more arduous (read: boring) initiatives. Accomplishing this starts with discussing annual goals with your team before they’re locked-in. If you can identify and include projects the team wants to tackle as part of your annual goals, then you can justify spending time on things that reinvigorates their engagement.

Finally, giving your team opportunities to grow is squarely your responsibility as a leader. It starts with understanding the interests and aspirations of the individuals on your team, and that requires building strong professional relationships. To quote another great leader (Ted Lasso): “Be Curious, not Judgmental”. If you’re curious enough to learn what interests and motivates your team, you’ll be able to provide them opportunities which allow for growth personally and professionally. This will go a long way toward retaining great talent. Just don’t forget that it’s on you to allocate both time and training budget in order to make sure your team has such opportunities to grow.

1:1 Meetings

Building strong professional relationships requires getting to know your team for who they are as human beings, and (perhaps more importantly) letting the team get to know you. The first rule of good “one on one” meetings is that they should not consist of status updates. You can gather such details asynchronously through chat, email, or where the tasks should actually be tracked - like on a project board. Although you can use the time to discuss learning and growth opportunities related to ongoing projects, but that’s a different matter.

Instead of status updates, you should first focus on getting to know the human being on the other side of the conversation. Who is this colleague beyond $JOB_TITLE that you’re working with? What do they enjoy about their work? What do they like to spend time on when they aren’t working? Where did they grow up - and what was that like? Do they have a significant other and/or pets (or children)? If they do - what’s their name(s)?

It’s also important to make sure you understand the difference between building a professional relationship, and being creepy by prying information out of someone. Be curious - but also let the conversation flow naturally, and be non-judgmental about what you learn. Who knows, you might even come up with recurring topics that generate a smile when you chat. Like that garlic bread that still hasn’t been made, or a video game you both find enjoyable. You could also learn interesting history about someone - like how they went to law school, or about how they won a kilogram bar of silver as a CTF prize.

Anyway, the point here is that one on one’s are as much about building camaraderie as they are about helping that person grow - both personally and professionally. If you’re looking for a good cadence to follow after the first few “getting to know each other” meetings, I recommend something akin to the following:

  • Checking in (how are they doing?)
  • Do they have any topics they want to discuss (these take priority - this is their meeting)
  • Upcoming opportunities for learning and/or growth (No Surprises)
  • Wildcard rotation (career planning, knowledge sharing, quarterly planning, etc.)
  • Finally, what are their upcoming plans for downtime (

Identifying & Addressing Burnout

By spending time building strong professional relationships with your team, you’ll also find that it’s easier to recognize the early signs of burnout. Burnout usually starts presenting itself as a lack of interest in tasks, projects, or hobbies that the individual previously expressed great excitement for. You’ll hear it in one on one’s when someone starts expressing doubt about their skills and abilities. It will also show up in the quality of someone’s work - often due to a lack of motivation and/or inability to remain focused.

If you’ve started to recognize signs of burnout from your team, it’s up to you as their leader to take action. You can do this in several ways, but the first thing you should do is try to make room on the calendar for that person to take two full weeks of vacation so they can disconnect. I’ve personally found that it takes at-least one week to destress and get to a place where I can rest, and then another week to actually rest and recover. I strongly encourage doing this yourself from time to time, as it will help identify leadership gaps - and it provides your team a healthy example to follow.

That said, if for some reason you can’t make room on the calendar to give that person downtime, you should look at using other tactics like reducing workload. You can also try moving them onto smaller projects/tasks with shorter timelines that are safe to run over - or by giving them an opportunity to mentor more junior members of the team. Burnout can be really exhausting, but sometimes a handful of small wins or time spent teaching others can be reinvigorating.

Further Reading

If you’re looking for more ways to improve your leadership skills (including “managing up”) then I highly recommend reading The Manager’s Path by Camille Fournier. When I became a “manager of managers” at Thermo Fisher Scientific, I recognized that I still had a lot to learn about being a leader. This book helped me become a better leader, which in turn led to further promotion.

Likewise, my friend and mentor (Bryan Inagaki) recently recommended a book titled The Skill Code - and while I haven’t read it yet, I trust his recommendations when it comes to good reading. I learned and developed a lot of my leadership skills while working for Bryan, and continue to benefit both from his friendship and the wisdom he frequently shares.


If you found this post useful or interesting, I invite you to support my content through Patreon — and thank you once again for stopping by 😊 While taking some time to prepare my next blog post, you can git checkout other (usually off-topic) content I’m reading over at Instapaper.

And until next time, remember to git commit && stay classy!

Cheers,

Keith

This post is licensed under CC BY 4.0 by the author.