chopfitzroy / tech-lead-notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tech Lead Notes

Learning notes and resources regarding becoming a Technical Lead.

Technical leadership varies from company to company and as a result there is no real "handbook" πŸ“” to learn from, as a result I set out on a mission to find and consolidate a list of resources that I found helpful while transitioning into this role, my own anecdotes will be included as well.

The most common theme I have noticed amongst these resources is that a good technical lead will be proactive within there role, this means seeking out resources/issues/etc... before they occur and addressing them.

Resources

You're The Tech Lead! Now What? πŸ“½

Synopsis: Technical leadership is above helping other people do their jobs well, Facilitate, Advocate, Motivate are the core goals of the technical leadership position and are integral in helping the team build good software while keeping the bigger picture in mind.

Additionally in this kind of role your output will not be what it is as a developer in terms of raw code πŸ’».

Things to be proactive about:

  • Say NO to feature creep πŸ™ˆ
  • Write everything down and send re-cap emails πŸ“¨
  • Remove roadblocks, or prevent them from ever happening (anticipation) ✌
  • Know the answers, and ideally create a place where people know to look for them ❓
  • Try to remove as much emotion from issues as possible by creating frameworks and data where no one feels personally responsible (Burndown charts πŸ“‰ are seen as a good way to handle this)
  • If you have concerns above the direction a developer is going, instead of trying to overrule them, whiteboard the problem and list your concerns as they explain their intended solution, this way you are able to voice concerns as well as get a better feel where the developer is in regards to the project πŸ˜‡

Talking with Tech Leads πŸ“½

Synopsis: Technical leadership is less of a promotion (more of what you did before but with more control/responsibility) and more of a change in role, that comes with a new series of jobs and responsibilities. Touches on what is referred to as the "Trident Model" of career progression, which considers, Technical Lead, Management, Individual Contributor.

Speaker also has a great slide with recommended books πŸ“š.

Responsibilites of the Technical Lead (assmuning "Trident Model"):

  • Team alignment 🀼 (essentially making sure everyone knows what they are working towards)
  • Technical vision πŸ‘€ (articulating what is actually being built, is it a series of micro services, or a large monolithic application?)
  • Growth of technical knowledge 🌿 (making sure that no part of the system is owned/understood by only one developer, knowledge and resource sharing)
  • Technical risk management ⚑ (proactively thinking about where risks can/could occur and strengthening these areas)
  • Technical debt management βš– (proactively knowing when and where to make optimizations in the system to reduce friction in future update paths)

Challenges of a Technical Lead:

  • Staying up to date with the state of the code base πŸ•Ά (PR review is one way to handle this)
  • Does the code base feel standardized πŸ€– (OOP, Functional, etc...)
  • Standardisation across tools and patterns πŸ”¨
  • Working with different people, understand how people react and behave differently πŸ’—
  • Role can feel isolation, especially when transitioning from a role as a developer πŸ‘½
  • Build up a support network with similar roles 🎁 (other technical leads in the company, technical pre-sales, management, etc...)
  • Delegate effectively πŸš€ don't just tell, participate and support (when/if needed) this helps your team to grow

Tech Lead Role

References

Here are some other great repositories with information that I either have pulled from or plan to pull from in the future.

About