What exactly does a Tech Lead do, and should coding still be part of their role?
There is no clear definition for the role of a tech lead. Each company establishes its own definition based on the day-to-day needs it faces. This brings us to the first key point: since the responsibilities of a tech lead can vary from one company to another, the required skills extend beyond those needed for a specific position in a single company. This represents a significant challenge in a tech lead’s career, as it requires broader and less clearly defined preparation compared to an IC (individual contributor) or developer. Does programming still fall within the responsibilities of a tech lead?
Tech Lead’s effectiveness depends on remaining technically engaged, staying familiar with the codebase ensures accurate decision-making, mentoring, and code review.
Below is a simplified list of common responsibilities associated with the role in most companies. Many of these are shared with other positions but are undeniably integral to a tech lead’s role.
Solution Architecture. At various stages of a project, technical challenges arise that require analysis and design to implement solutions that align with the project’s objectives. For example, at the start of the project, this may involve the conceptualization and initial implementation of the different layers and components used during development, defining processes and workflows for deployment, or establishing style guidelines. It entails making technological decisions throughout the project’s lifecycle.
Technical Management (planning, estimation, prioritization, task assignment, supervision, etc.). Technical management is another process that varies significantly between companies and teams. It requires the Tech Lead to be involved in task definition at all levels. The Tech Lead should envision the steps and the time required to complete each task. This is not just about knowing the technology but also understanding how the project functions at a low level.
Mentoring. The Tech Lead is the person with the closest contact with developers. As part of a developer’s learning and growth process, the Tech Lead must guide the team in best practices, onboarding, explaining how the project operates, and helping professionals reach a place where they can fully develop their potential. Indirectly, the Tech Lead must earn the team’s trust by demonstrating their technical leadership skills. Their contributions are critical as a role model.
Supporting Developers. The Tech Lead must know where to direct developers to find answers to their technical questions. They need to have sufficient experience and knowledge of the tools to act as a technological enabler, helping to unblock issues.
Code Review. Code review, whether through pull requests or periodic code audits, is a key responsibility. Evaluating the implemented solutions is very difficult if the Tech Lead has not encountered similar problems, lacks project context, or is unable to navigate the codebase effectively.
Acting as a Facilitator. The Tech Lead is not expected to always have the answer but is always responsible for facilitating processes and tasks. This involves decision-making, delegating tasks to other team members, and effective communication (within the team, between teams, and externally). The ability to communicate technical issues relies heavily on the Tech Lead’s capacity to understand the problem and its nuances. The context of each issue can be highly complex and may require deep knowledge of the software’s functionality, the implemented mechanisms, and the existing codebase.
Code Quality Assurance. Each part of the code can be easily measured in terms of quality when evaluated in isolation or partially, but not in its entirety. Assessing code quality requires proper contextualization. Absolute evaluation is determined by the business requirements and the project context. The Tech Lead has privileged knowledge of these two aspects, gained through their involvement in project management and their technical expertise.
Therefore, these skills are developed through hands-on problem-solving while coding. In response to the question posed at the beginning of this post, my answer is a resounding yes. The responsibilities of a Tech Lead require both a general understanding of the languages and tools used for project development and specific expertise in applying these tools within the context of the projects. If this fundamental dimension of a project is removed by the company or overlooked by the professional, it undoubtedly constitutes negligence.
Software engineering exists in a state of constant and rapid evolution, making it incomparable to other types of engineering. In other fields, experience accumulated over time often allows professionals to distance themselves from the specific details of implementation. This paves the way for career paths where workers take on management roles while their practical knowledge remains relevant for years or even decades.
What should be done when programming tasks are reduced or no longer exist? ๐
As a good professional and a capable Tech Lead, it is their duty to avoid this negligence. Out of loyalty to the company that employs them, they should advocate for and educate others on the importance of maintaining technical involvement. As we have seen, the common responsibilities of a Tech Lead demand continuous learning and updates, which will be negatively affected if the professional is not adequately prepared.
More importantly, this is essential for their own professional development. The skills required for Tech Lead positions often overlap with those of regular Software Engineers in many companies, and this overlap makes sense.
What percentage of time should a Tech Lead dedicate to coding? ๐
It is a fundamental and irreplaceable part of the role, but the true value of a Tech Lead comes from their contributions to the team, meaning the majority of their time should be spent on other responsibilities. It is difficult to define an exact percentage, as this will depend on various factors, such as their experience with the technologies and the project itself. However, a healthy balance is typically around 20%.
Should a Tech Lead never stop coding? ๐
The role of a Tech Lead is inherently tied to coding. For some, it is a career destination; for others, a transitional phase. As I see it, it is the crossroads where developers either transition into Engineering Managers, stepping away from the daily hands-on coding, or reaffirm their commitment to the technical path and continue advancing in technical roles (e.g., Staff Engineer, Principal Engineer, etc.). Ultimately, it is a deeply personal choice.
How skilled and up-to-date does a Tech Lead need to be? ๐
A Tech Lead must be highly skilled in the technologies they work with, as their team will look to them for solutions. However, they don’t necessarily need to be the most knowledgeable about every technology. Instead, they should excel at enabling the team to find solutions. This might involve making critical technical decisions, resolving a bug, or connecting a developer with someone who can provide the right solution.
How does one become a Tech Lead? ๐
Throughout this post, we have explored the most important aspects of the role. However, what I believe is fundamental to becoming a good Tech Lead is the ability to bridge technology and business. Many developers are outstanding in their technical skills but fail to adequately consider business requirements. The most critical reality of software is that it is a means to an end, not the end itself. This demands placing greater emphasis on the business side than the technological one.
A Tech Lead must be capable of developing critical thinking. For example, sometimes it is more important to deliver something basic and functional quickly than something complete but delayed. Ask the right questions and reflect: Is this functionality truly necessary?