Our industry is well known for complex terms. Roles in the software development process are a good example of this. Positions such as Architect, Tech Leader, Team Lead, and Engineering Manager add to the confusion. In this article, we will take a look at the definition of a technical leader.
A short: A technical leader is a software engineer who is responsible for managing the team and supporting the technical direction.
Long: A technical leader (or tech lead) is a software engineer who is responsible for managing the team and supporting the technical direction. Technical support includes having a technical vision, resolving technical contradictions and managing the quality of the team’s work result. An effective technical leader ensures that the team uses appropriate engineering techniques (such as CD and automated testing), invests in continually improving tools or reducing technical debt, and ensures that the system evolves in response to changing needs and the environment.
Sometimes the position of a team leader can be divided among several people, but very rarely the position of a tech lead is divided. A technical leader can lead a team in conjunction with specialists such as Product Manager, Engineer Manager, or Team Lead. Where an engineer manager or team lead focuses on people development and team growth, a technical leader focuses on the technical growth of team members and the system. The tech lead’s focus is on leading the technical direction and quality of the team. They may also have additional responsibilities depending on the specific team.
In the example above, a team might have a Product Manager, an Engineer Manager, and a Tech Lead. Leadership is divided into three roles, but each of them provides a different direction. In this situation, the technical leader focuses more on technical aspects. The rest of the leaders will more actively participate in the discussion and decision-making. They will oversee and manage the quality of the codebase as it develops and the team grows technically.
In the example above, the team only has a Product Manager and a Tech Lead. In such a situation, the tech lead inherits the responsibilities of the engineer-manager. Team leaders also focus on developing people (for example, processing feedback or talking about moving up the career ladder) and building a highly effective team. This model works well with small teams or less complex systems. As the team grows or the system becomes more complex, the tech lead has less time to focus on both areas. The technical leader in this context is implicitly prioritizing one of two areas of activity. From personal experience, usually priority is given to the technical side of the issue to the detriment of the development of team members.
What remains in any team, regardless of its composition, is the technical superiority of the tech lead. An effective tech lead works on the technical vision of the team. And together with the team, they update, develop and implement it. The tech lead is constantly working with code to make informed decisions, identify technical risks, and build trust with developers. In his presentation “The Geek’s Guide to Leading Teams” i I suggest spending at least 30% of the time on the code.
Not just a team lead
At the dawn of my career, I worked in a team with a tech lead and a team lead. The team lead did not have a good knowledge of architecture. And they could write code together, but they chose a different way to add value to the team. They devoted a lot of time to the development of people. The team lead was very often one-on-one with people who worked on feedback and developed their careers. The leaders actively organized activities to build psychological safety and trust in the team. The team leader met with stakeholders outside the team, but kept a good information flow and eliminated blocks.
Where the team lead focused on the team’s issues, the tech lead focused on technical issues that affect more than one developer. The Tech Lead mediated technical debates. And together they helped develop solutions to optimize performance. They talked about solutions that could limit or expand future architectural choices. They also met with stakeholders, but still focused on the technical side of the issue. They stayed in touch with other Tech Leads to understand that our system would fit into the broader architecture of the company. They met with product specialists to understand that our architecture is in line with the course of product development.
More practice than a management engineer
“You control things and control people.”
– Grace Hopper
Like a tech lead, a manager engineer also lacks a clear definition. At some point, you will realize that this role varies from company to company, and sometimes even within the same company. Some engineering managers are similar to tech leads, but there are also some that are very different. For example, many people don’t write code on a day to day basis. Instead, they do the following:
Maintain a productive working environment for development teams;
Knock out a budget for the development and support of business goals;
Represent a technology perspective at the management or board level;
Create or coordinate work programs (implemented as part of the development);
Recruiting and retaining staff to meet the needs of the team or IT staff.
An engineer-manager can be either one per team, or one per several teams. Many of them may not even have development experience. Instead, they can be Product Managers, QAs, or other professionals involved in software development.
Tech Lead is a good architect
The architect ensures that the overall architecture of the application will be consistent with the business context, now and in the future. In some organizations, architects work with teams to create and validate an architectural vision. Architects are also looking for the right balance of standardization. A rational number of standards maintains performance at the proper level, too strong standardization kills innovation.
Some organizations have ivory tower architects who constantly consult with someone, standardize and document everything. They flow from team to team, start new projects, and rarely see how their original architectural vision was brought to life. Do not do like this. The Tech Lead shouldn’t be like that.
An effective architect is a good tech lead. He understands what the team’s goal is and creates an appropriate architectural vision. He works with the team, adjusting course as the team learns more about the problem and the technology chosen to solve it.
What are the key skills a tech leader should have?
While the areas of technical leadership may vary, the skills required do not. The technical leader must develop a balanced skill set in the following areas:
Development – The tech lead must have experience as a developer. He needs to know how to write code and what good code looks like. He should be able to help his team with any technical problem, even if he is not an expert in the field.
Architecture – only one stage of building a working system. Tech leaders need to have a broader understanding of how software fits into the overall system. They need to understand how the software will be deployed, managed, and operated in production.
Leadership – an effective tech lead must have strong leadership qualities, even if he is not formally at the head of the team. Leadership qualities such as coaching, influence, and delegation of authority are keys to success.
“A technical leader is a software engineer who is responsible for leading the team and supporting the technical direction.”
– Tech Lead definitions (from
A technical leader is a software engineer responsible for leading the team and supporting the technical direction. A technical leader can lead a team in conjunction with specialists such as Product Manager, Engineer Manager, or Team Lead. But only the tech lead focuses on the technical aspects, how to do it. An effective tech lead combines strong leadership, architect and developer skills. He creates a common technical vision in the team and is responsible for the quality of the team’s technical results.
Why is an employee leaving the company often a disaster? How to prepare for the exit from the team of the company and the employee? Why should the layoff be ready on the first day of work?