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"
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.
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
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
Here are some other great repositories with information that I either have pulled from or plan to pull from in the future.