During recent years, I’ve come across (and worked with) three basic variations of the Tech Lead role. While the essence of the role remains relatively constant, each flavor adds some interesting characteristics and comes with its own pros and cons.
The project based Tech Lead is not a point on the career ladder, but rather a role that any engineer can take on from time to time for a single project. As such, it comes with a well defined start and end date as well as with a clear goal of ensuring the technical quality of the project’s delivery. Unless the project is large, this flavor usually involves less focus on architecture and more focus on the project management aspects. The ability to prioritize, break down large tasks into smaller chunks of work and communicate with non-technical stakeholders are often key skills to either have or develop in this role.
It’s a great opportunity to introduce less experienced developers to the role by letting them try it out during a limited period of time and gain relevant leadership experience without the long term commitment that a more permanent setup might imply. It is also possible to tune the complexity by offering different project sizes depending on the engineer’s current level. However, you might lose some of the long-term thinking and influence that the other variations of the role usually include.
The component based Tech Lead is responsible for a technical component within the overall technical platform. Most commonly, the component here is either backend of frontend, but could also be sliced differently depending on what makes sense for the organization. It’s a more technically focused role where long-term thinking and planning is a large part. You get more influence over architecture compared to the project based flavor and often less focus on project management.
While this might seem like a fairly natural way to slice the role’s responsibilities, the downside is that it becomes very easy to focus too much on the technical aspects and lose the connection to the needs of the business. Another challenge for the component based Tech Lead is that it is difficult to take responsibility for a full product delivery or project since such initiatives often span multiple components. However, in certain scenarios, for example in the case of a very complex technical component, the positives might still outweigh the negatives.
The team based Tech Lead is responsible for the technical quality of deliveries within an entire software engineering team. Implicitly, this includes the technical components and the projects that the team is responsible for, so you might argue that this is a combination of the two previous ones. However, in addition this flavor also comes with more focus on leadership, management and “people” skills. It gives you lots of influence but also requires a broader spectrum of competencies. As such, previous experience of one of the other flavors might be a good stepping stone into this role.