markdown guide
 

These could feasibly be the same thing, or wildly different, depending on the organization.

For me, Tech Lead is easier to define:

  • Senior technical team member.
  • ~30% of their time is still spent writing code.
  • The remaining ~70% is eliminating technical blockers, setting and evolving tech strategy, working with product owners and project managers to define and deliver the product vision as well as empowering, growing and onboarding their team members.

I like to think of the role as a Software Developer who lightly manages the team, from within the team.

A Team Lead (in a big business, traditional sort of sense) may differ in that they:

  • Aren't necessarily a technical team member (or may be post-technical in the sense that they haven't written code in a good long while).
  • Manage the team from the outside.
  • Concern themselves more with budgets and timelines than technical outcomes.
  • May be more involved in HR activities, like approving leave, reviewing salaries etc.

Neither of these lists are exhaustive in terms of responsibility, and the venn diagram of what role has what responsibility will vary from business to business.

What I will say is: Whether this is two roles, or one role serving both functions, all of the above is necessary for a team to perform well.

My ultimate bugbear is "Tech Leads" who don't work within a team and don't write code, issuing orders from their weird, architect-y, tower. This can lead to a disconnect between tech strategy and implementation that will derail any team and/or product.

My second ultimate bugbear is "Tech Leads" who refuse to consider business context when making technical decisions, and are only interested in writing code. This leads to building "cool" technologies that don't serve their stated purpose.

 

What a great answer!

This aligns closely with what I have in mind. I love your term "bugbear" - both are definitely in my bugbear list also.

The "architect-y" tower reminds me of leaders who insist on having things done in specific ways without knowing what exactly the impact of what they're asking for.

The 2nd one is crucial since majority of software is written for business purposes and therefore, really needs consideration and to not do so would actually create technical debt and cost the business $$$ in the long term.

 

I have been both at one company, and still use the "team lead" title on my resume. In place of "tech lead" I put "software developer" since that's what it actually meant there, and I find the ambiguity unhelpful in that particular case.

 

In your "tech lead " role, were there any key differences vs a software developer role?

What do/did you do as a team lead?

 
  1. None whatsoever.
  2. I coordinated the work of 8-12 "tech leads" (i.e., software developers) on not quite as many projects. Planning, allocations, pitches, managing management, generally making sure people had what they needed to do their jobs. Occasionally I got to do a little technical work on infrastructure or smaller projects.

Interesting how your title was a tech lead yet you didn't exactly lead within a team. πŸ€”

Number 2 This sounds like what a tech lead would be like for me. Did it include doing performance reviews/hiring as well (HR stuff)?

I don't believe any of us "tech leads" took the title too seriously. It's been a long time but I was responsible for performance reviews and there may well have been a few interviews; the company was doing its level best to outsource as much as possible (with predictable results) so growing the team wasn't exactly a priority. I could make personnel recommendations but hiring/firing decisions went to the next manager up.

Ah, thanks for clarifying. So sounds like it was a combination of a tech lead and team lead (at least based on the definition in my head), since you did some of the technical work but also managed people in an HR way.

 

It’s super hard topic because nowadays we have also engineering manager. The difference between those 3 is very subtle. Main responsibilities all of them usually have in common are:

  1. Balance long term solutions with immediate impact
  2. Create roadmaps with teams and ensure timely delivery
  3. Ensure best development practices
  4. Help in hiring process
  5. Is Assertive
  6. Lead develop / mentor engineers
  7. Lead a team from idea to release
  8. Prioritise and coordinate work between different teams
  9. Represent teams from technical perspective on non technical meetings
  10. Test ideas
  11. Contribute as a developer.

I think all of them have most of those points as part of their job description, but with different priorities depending on current needs and size of the company. :)

 

I totally forgot about engineering manager! Indeed, it makes it difficult. I wish all companies would just align on their position names πŸ˜‚

I like how you listed contribute as a developer last because all the things in the list prior to that can easily take >80% of a leads time.

 

Now that there are a couple of responses, here's mine.

Tech Lead is someone technical and leads a team of developers to execute a software project. Little time is spent writing code. Majority of the time is spent:

  • Consulting with customers (product owners).
  • Managing stakeholders and expectations.
  • Providing high-level estimates when the software is still in the early stages/idea stage.
  • Defining a roadmap of how to get the project completed and working with product owners to break the work down into manageable chunks that works for the business and stakeholders.
  • Help the developers out with code/design as needed.
  • Can also help define a roadmap of not just code, but architecture and how the software/application/system connects to other systems across the company. (in large companies, there are LOTS of systems connected to each other)

Team Lead sounds more of a manager to me which would involve more HR roles:

  • Hiring
  • Firing
  • Performance reviews
  • Raises/Bonuses

I think both need leadership qualities especially around building team trust.

Also, seems like from all the replies so far, it really just matters on the company, and the larger the company, the more these roles can be split/more focused. Smaller companies can have these roles combined into one role.

 

I simplify it as all in one lead.

Hiring manager = project manager = department head.

C-level is another group.

Technical team lead should be the coach for their team. I have had leads who give zero leash and it creates a bad environment. I have also had leads that are so hands-off that we become detached and that's also bad to be having constant gaps.

 

So in your mind, both are the same? I can consolidate both Team Lead and Tech Lead in my head also.

But the concept of hiring manager = project manager = department head is weird to me because in my head, they're all different. I do work at a 5000~ employee company though. Smaller companies means more combined roles I guess?

 

Tech lead does not need to mentor or manage people. They can be independant. Team leads so not need to he deep into a technology. They are more focused on attending meetings and setting requirements

 

Hmm. Why do you think that a tech lead does not need to mentor people? Can you expand further what you think the roles of a Tech Lead is vs a Team Lead?

In my mind, a Tech Lead mostly attends meetings and helps setting requirements specifically because they understand the technical aspects of the work, and for estimates and requirements to be realistic, there needs to be a technical person to do the consulting with the non-technical people (product owners/customers).

 

Tech lead's can be a position where someone is considered the primary expert on a particular piece of technology but operates solo. It can be the case that the role involves teaching or nurturing others, but it is not a specific requirement. The reason this role might exist is if the person working it is an expert at a piece of technology that does not require a larger team, or if they must remain flexible and change assignments often. In that case, things like too many meetings and/or spending extra time doing PR reviews would bog things down.

Classic DEV Post from Feb 13

How Do I Start Giving Talks on Coding?

I don't consider myself an expert in just about any aspect of computer science ...

Cristina Ruth profile image
Senior Software Engineer and Tech Lead. I write about tips & thoughts on tech & life, and other random stuff.