Friday, March 08, 2024

What makes a good technical leader?

Hands-on Leadership

During my time at Virtusa, a couple of decades ago, Software Architecture Review Boards weren't passive affairs. Our Chief Architect, and the entire engineering leadership team, actively participated. We didn't just review diagrams; we dug into the code depending on what was on the agenda. A memorable example involved reviewing a Java codebase connecting and executing queries against a large enterprise client's Oracle database. As the code appeared on a large projector screen, I spotted an SQL injection vulnerability and voiced my concern (Read: literally pointing at the exact line of code and chanting "SQL Injection, SQL Injection... learn how to use Hibernate correctly!"). The agenda that day, however, revealed a more pressing issue: preventing the client from discovering this kind of embarrassingly bad code before our team. This, unfortunately, had happened during the previous release. At the time, my title was  R&D Focus Area Lead.

Fast forward a few years, I'm at WSO2, my title was Technical Lead and Product Manager. Here, a culture of hands-on leadership prevailed as well. The CEO and CTO routinely white-boarded feature architectures with the teams. Even the VP of Product actively contributed by committing code to our core platform and products. 

Coding wasn't optional for leadership; it was a core skill. "Leadership" wasn't an excuse for those who were technically unskilled to pretend to be leaders under the guise of "Management". The only exceptions were roles solely focused on HR and Office admin. We didn't hire project managers, and every release artifact required to be signed using the product manager's GPG key signature.


So what makes a good technical leader? Good technical leaders are a blend of strong technical skills and soft skills. Here's a breakdown of some key qualities:

Technical Expertise:

  1. Deep understanding of the field: They possess a strong grasp of the technologies relevant to their team's projects. This allows them to make informed decisions, solve problems, and guide the team in the right direction.
  2. Staying updated: The tech landscape is constantly evolving. A good technical leader is committed to continuous learning, keeping themselves abreast of new technologies and trends. 
    • By this, I don't mean hoarding certificates. I have seen "<insert-some-cloud-vendor> 12x Certified DevOps" leaders who cannot find a customer's Direct Connect link in the admin console, let alone understand how Lambda layering works; Good luck reviewing your team's Serverless architecture. 

https://x.com/elonmusk/status/1522609829553971200?s=20https://x.com/elonmusk/status/1522609829553971200?s=20https://x.com/elonmusk/status/1522609829553971200?s=20

Leadership Skills:

  1. Communication: They can clearly communicate technical concepts to both technical and non-technical audiences. This is essential for keeping the team aligned, collaborating effectively with stakeholders, and advocating for the team's ideas.
  2. Delegation and mentorship: They understand their team members' strengths and weaknesses. They can delegate tasks effectively and provide mentorship to help team members grow their skills.
  3. Building trust and fostering collaboration: They create a positive and supportive work environment where team members feel comfortable sharing ideas, taking risks, and learning from mistakes.


Strategic Thinking:

  1. Vision and Goal Setting: They can translate the overall product vision into a clear technical roadmap for the team. They can set achievable goals, break down projects into manageable tasks, and keep the team focused on the bigger picture.
  2. Problem-solving and decision making: They can approach challenges with a calm and analytical mind. They can gather information, evaluate options, and make sound decisions that are in the best interest of the team and the project.

 

Additional Traits:

  1. Being a team player: They are not afraid to roll up their sleeves and work alongside their team members.
  2. Adaptability and resilience: They can adjust to changing priorities and unexpected roadblocks.

 

By possessing this combination of technical proficiency, leadership qualities, and the right mindset, a technical leader can create a high-performing team that delivers innovative solutions.


Image: My personal GitHub profile at https://github.com/tyrell