Somebody recently asked:

How do you learn to be a tech lead?

Knowing her background, I replied with another question:

Do you mean tech lead or team lead?

The difference was not obvious to me until I worked as a tech lead in a team that had a team lead.

Team vs Technical lead

On that particular job, as a tech lead, my responsibilities were:

  • Choose the right tool for the job: be aware of existing tools/libraries/frameworks, their trade-offs and what was appropriate for the company’s context.
  • Code contributions.
  • Code quality (aka bugs).
  • Production issues/outages.
  • Design and architecture, including NFRs.
  • Developer productivity: from testing, CI/CD, release, monitoring, …
  • Technical mentoring.
  • Awareness on other parts of the system: functionality available, technologies used, trade-off, high level workings, lessons learned.
  • Applying the company’s architecture constraints, principles and practices, and raising concerns when we wanted to deviate from…

Source link