Tech Lead — everything Software Engineers need to know to become a great Technology Leader
There's a lot of ambiguity around tech leading. So, it's crucial to define what it is appropriately — or should be. Tech Leads, Technical Leads, or Tech Leaders are software engineers responsible for developing, maintaining, and promoting a project or product's technical vision.
Tech Lead's job is far more extensive then coding. Actually, in practice, Tech Leads spend about 30% of time coding, and 70% doing many other essential tasks. They lead one or more teams to succeed from a technical perspective.
Therefore, people that care for other aspects of the product are vital allies for Tech Leads. The other way around is also real. Project Managers, Product Managers, Engineering Managers need someone to ensure the project or product meets the functional and non-functional requirements with quality and velocity.
However, depending on the company, responsibilities and job descriptions may vary.
Depending on the team's seniority, it requires more attention, more presence in meetings, or more frequent feedback loops. If the company is a startup, there may be very few documented or agreed standards, which requires Tech Leads to spend more time on it then coding or mentoring new members.
As it sounds, a tech leader's job is much more about orienting individuals and delivering high-quality code than implementing the software itself. It makes your assignment more intangible, and the impact of your decisions need more time to bring value.
Software Engineers can implement a new feature and deploy it to production in one to two weeks. On the other hand, Tech Leads can take months to establish, advocate, and prioritize an architectural solution with the team. The job starts with an idea and goes through a complicated process to get quality code running in the product.
Tech Lead Job Description
As already stated, the responsibilities and expectations vary depending on many aspects. Companies that develop Digital Products need Tech Leads to grant success in the medium and long run.
On the other hand, consulting firms and software houses need Tech Leads to drive projects, so they don't fail on delivery. In both cases, Tech Leaders must translate business requirements into technical requirements.
From the programming language to architecting the whole system, it's Tech Lead's job to drive the team to success.
Tech Lead's Responsibilities
The following list summarizes everyday responsibilities found in job listings pages. The relevant items in job descriptions usually include:
- 👉 Coordinate and motivate the team members.
- 👉 Take up the technical responsibility of the entire Project or Product. However, more prominent companies group software engineers around parts of the system, and each Tech Lead usually leads one to three teams.
- 👉 Design components and applications according to business requirements. At corporations that miss a Software Architect, Tech Leads may be responsible for designing the whole system.
- 👉 Define, advocate, and implement best practices and coding standards of the team.
- 👉 Work along with other Tech Leads, Product Managers, and Engineering Managers.
- 👉 Promote a collaborative work environment, and keep on asking for code review and the feedback from the peers.
- 👉 Generate detailed reports with accomplished, planned, and blocked tasks. Some companies may require a simple operational plan to remove impediments.
- 👉 Enable teams to perform tests and integration tests for the entire system in a reliable, secure, and productive way.
- 👉 Identify and mitigate risks, including security risks.
- 👉 Write postmortems for critical bugs, or outage episodes.
- 👉 Work on continually increasing the productivity of the team and reducing the waste on the other end.
- 👉 Always motivate and encourage the team to give their best, especially when they are under pressure.
- 👉 Make yourself completely aware of all the technologies thoroughly, especially those associated with software or application under construction.
- 👉 Actively promote a Code Review culture and review the team's Pull Requests.
- 👉 Share the success and failures with the team.
Required Soft Skills for Tech Leads
- 👉 Technical Lead should be flexible enough and be adaptable to the changing and varied work settings.
- 👉 Have excellent communication skills for interfacing between the team and the management.
- 👉 Humble to admit mistakes, but at the same moment, be firm and fair.
- 👉 Occupy a thought-leadership position among peers.
- 👉 Have a leader attitude that inspires all the other team members.
- 👉 Be able to manage targets and expectations of the team.
- 👉 Fulfill all the commitments by timely delivering the deliverables, and negotiating scope, deadlines, or costs based on data.
- 👉 Maintaining the account of time and also reporting regularly of own work.
- 👉 Have the right mindset to simplify complex implementations (delivery more doing less).
In practice, what does a Tech Lead do?
Eryn O'Neil, in her talk, Congrats! You're the tech lead - now what?, organized the practical job of a Tech Lead in three main goals: facilitate, advocate, and motivate.
Facilitate is the act of assisting the teams in delivering high-quality software. During the development process, many questions, blocks, and problems arise, and it's a Tech Lead job to guide the team back to safety.
It doesn't mean they need to know everything or solve all the issues by themselves. They can and should work together with the team to find great solutions.
Advocating is crucial to a Tech Lead. Whether extroverted or not, these professionals should promote discussions and actively participate in meetings.
Another essential job is to put everyone on the same page after a new technical decision. The same happens when the product team puts pressure on the engineering team to deliver a new feature as fast as possible.
As a guardian of the best practices and the codebase health, dealing with technical debt is one of the most common tasks of a Technical Leader. Therefore, they also must be involved in the prioritizing process, to endorse the "no" for new features and bring to the top of the list relevant technical debts and refactoring needed.
The best way to motivate the team is by empowering them to do the best work possible. It is especially hard when the culture bases on "command and control." This kind of culture also centralizes decisions in Tech Leads, which leads to burnouts and lousy performance.
The best way to empower people is to give them freedom and space for innovation while pointing out the pros and cons of proposed solutions. It educates and also helps in sharing ownership of the goals and objectives.
Playing this role doesn't mean that they became bosses or the most important person among team members. However, people expect a Tech Lead to take accountability for the team's result, and because of that, they should have leadership skills.
What should I do to be a successful Tech Lead?
The role of Tech Lead is sometimes kind of fuzzy. The technical aspects of software development depend on Software Engineers too. Frequently, it's common to see Senior Software Engineers perform tasks usually attributed to tech leads.
The Tech Lead's job, however, is more complicated. It's a full-time job that requires more soft skills than developers usually desire to exert.
The list below brings a brief explanation of activities to elucidate the soft skills required for a successful Tech Lead. The activities may vary depending on the company, team, or seniority of professionals. It's a great start to understand the role, though.
1. Establish a technical vision for the product
As a leader, you need to build structures and processes that don't depend on you. It considerably helps managing time. To do that, establishing a technical vision for the product is vital and precedes everything.
It's the first goal of a Tech Lead. With a defined technical vision, the team has a horizon, and they will know what to do. With a plan in hand, tech leads can now concentrate on other crucial tasks, like communicating, monitoring progress, and guiding the team.
2. Build alignment and trust
Alignment and trust are linked. People need to trust you that they are working on the right task. At the same time, they need to know what to do precisely and the motivation behind the job to trust you as a leader.
In other words, people must understand where they're going (alignment), and that they are doing the right things (trust). It's essential to have excellent communication and be part of the team, not above it.
3. Know your Team
Every Tech Lead should know their team. It doesn't mean only identifying members' talents, but being aware of their aspirations and personal issues.
Although many companies don't require from this role to conduct 1:1, it's an excellent opportunity to start this fantastic practice. Being face-to-face to the team members regularly brings lots of benefits, like spotting misalignments or misbehaviors, and helps in a more secure and harmonious environment.
By listening and carrying about team members, guidance and mentorship come naturally.
4. Have excellent communication skills
It's crucial to Tech Leaders to communicate well. It means having clear, straightforward, and effective communication. The path for achieving it is by establishing long-terms goals.
When Tech Leads have a defined view of the big picture, they can distill it into actionable steps. Small portions of work are more natural to communicate.
They must have achievable objectives because they bring a sense of progress, which motivates the team.
5. Manage your time and task priorities
Tech Leads will always have a stack of essential tasks. When the team pops an activity from the top of the list, another is pushed to the end.
The best way to manage the list of tasks is by distinguishing urgent from important ones. Critical tasks are those that need to be performed as soon as possible. These tasks are the priority.
Other critical tasks eventually become urgent. When it happens, pull it to the top of the list.
As it's impossible to a Tech Lead to work on every task, delegating is an excellent solution to gain time. While focusing on urgent stuff, ensure team members are working on the right demands. In other words, team members pull tasks from a prioritized list.
6. Manage the team's expectations
As already said, Tech Leads aren't bosses. It means they can't just prioritize urgent tasks and go for a coffee cup. People have expectations. Not only the people you work with, like Software Engineers or Engineering Managers but also product people.
To successfully become a Tech Lead, one has to manage the team's expectations. Everyone involved in the development process must be aware of the next steps, the relevant risks, and the known issues.
By managing expectations, your leadership turns into a trustful and respectful relationship with the other areas. It brings many advantages when negotiating or asking for help with the business, product, or management teams.
7. Monitoring progress
As asking for each individual how everything is going doesn't scale, the best way to know whether the team is moving forward is through metrics.
Metrics give a quantitative sense of progress, which is perfect for tech leaders. Pull Request metrics are especially great, but other engineering metrics are useful too.
Here are some of the engineering metrics that can help in the task:
- 📊 Pull Request Lead Time
- 📊 Throughput
- 📊 Time from First Commit to Merge
- 📊 Time to First Comment
- 📊 Deploy Frequency
- 📊 Number of Technical Debts
How to become a Tech Lead (career paths)
Well, every journey starts with an aspiration. If you aspire to become a Tech Lead, then the best way to pursue it is by being an excellent Software Engineer before.
Software Engineers are smart people that enjoy solving problems. They use technologies to do so. It's crucial to be an expert in a programming language. But just knowing a single programming language is not enough nowadays.
Designing complex and distributed software involve a considerable number of software and protocols, usually with lots of names and abbreviations. REST, RabbitMQ, React, Redis, GraphQL, and NoSQL are examples.
Modern software development requires developers and engineers also to be proficients in the whole tech stack. From Front-End to Back-End, the many types of databases, the many design patterns or architectural patterns, and a technology leader need to have a clear idea of what they are.
After some years of working in the industry, an experienced engineer will have experience from design to deploy. This experience can then be condensed in a more abstract work, which does not end in commits or code, but in plans and management.
For many people, the Tech Lead position comes naturally, since they are participative, confident and so respected by the team. Then another phase starts. Becoming a Tech Lead requires soft skills, not only technical ones.
Instead of an IDE, Tech Lead aspirants get best friends with communication skills. They stop translating requirements into code and start translating business requirements into software requirements. And the leadership gradually appears, together with the abilities described in the sections above.
Many companies have the role of Software Architect, which generally stands for the whole system, whereas Tech Leads take care of single software or subsystems. In this case, a System Architecture may be a natural path.
For those that enjoy managing people the most, a Software Engineering Manager role would be adequate. This role is perfect those that want to help Software Engineers to evolve in their career.