Engineering Management

3 Leadership Principles for Upcoming Technical Leaders

For this article, I will define the leader as the person accountable for getting the job done. In the context of technical leadership, this could be coming up with a viable technical solution and strategy, delivering a project, or upskilling a whole team.
  • LinkedIn
  • YouTube

There are many ways to lead and be successful, but here are three principles I strive to do.

Master your craft

To accomplish something, you have to be competent at the task. For example, I cannot build a website unless I am skilled in HTML, CSS and JavaScript. I cannot make a website performant unless I know the inner workings of HTTP, BOM, DOM, and the optimisation specifics of the frameworks and technologies involved.

Competence is the “technical” part of technical leadership. Without competence in your specific field, you can manage people from behind, coach people from the side or orchestrate from the top, but you can never lead from the front.

For front end engineers (like myself), this means :

  • Knowing different JavaScript frameworks like React, Vue, Angular or Svelte and which framework (or none) is most appropriate for your project. 
  • Knowing different organisational structures like micro front ends, backend for frontend (BFF), design tokens and systems and when to resort to using (or not using) them to have maintainable software. 
  • Knowing CSS architecture using conventions (BEM, ITCSS), inline (CSS-IN-JS), utility first (Tailwind), pre/post processors (SCSS) and vanilla approaches (CSS grids, flexbox, minmax) etc. 
  • Knowing upcoming technology trends and practices (threats and opportunities) that could affect your team and expertise.

The list will be different depending on your niche but the principle of competence still applies.

You don’t have to be an expert in everything since many are just different ways to solve the same problem. However, you need to be strong enough to earn respect, foster confidence and calm fears.

Suffer for your team

Competence will get you to the finish line as an individual. However, competence is not enough when you are leading a team. Beyond competence, you also need to be willing to suffer for the team.

I have worked with competent people who failed projects or abandoned their teams because they were unwilling to suffer for the team. Being expectant of pain and suffering will help you be resilient when you reach your project’s peak of hardship.

For engineers, this could mean

  • Attending useless meetings so your team can focus on delivering code.
  • Giving team members more exciting work to motivate them and dealing with monotonous, tedious tasks like analytics tagging or bug fixing yourself.
  • Staying quiet about “better ways” to achieve something and allow others to grow in their own time, providing enough room for learning and error.
  • Owning mistakes and absorbing pressure from the outside to reduce team stress and anxiety.
  • Being patient with know-it-all members and entertaining their views, even when it is ridiculous.

If you master this principle, you will suffer, but you will feel a more profound sense of job satisfaction as you and the team produce better results.

Build a relationship

To be a leader, you need to have an interest in people. If you have no interest in people, it is best to stay as a senior engineer and enjoy your work. 

The way to bring the best out of people is to get to know them. What are their strengths and weaknesses? What is their current personal circumstance? If they just had a baby, do you think it makes sense to assign them to larger features or are they best placed in intermittent BAU tasks?

Technical people are usually not fond of small talk (at least I’m not). Therefore, what I’d like to do to ensure I build relationships with my team is to set up regular focussed catch-ups. 

Here are a few ideas you can do:

  • Setup meetings around technical architecture or upcoming technologies and get your teams opinion on such matters
  • Ask your team good questions during code reviews and sprint planning, and spend some time listening and understanding their approach, less directing.
  • Exercise pair programming activities, let them drive and allow them to drive you.
  • Setup a random chat group relating to something that interests the team, like funny memes, pets, hobbies etc.
  • Have lunch, attend socials or conferences together

Meetings and chats do not have to be personal, sensitive or fun (they can be), but any time spent together is time well spent. Invest in your relationship by spending time with the team, and the rest will follow. 

Conclusion

To summarise, master your craft, suffer for your team and build a relationship. If you stick to these principles, you will lead successfully without resorting to bullying, manipulating or using people to get the job done.

About the Contributor

Discuss this topic with an expert.