You have spent many years as a Senior Engineer, you have encountered and solved all kinds of technical challenges, you have formulated various opinions over the years and you find yourself at a typical developer crossroad: you learn to become an expert in a different stack or industry, you fullfill the archetypal dev dream of opening a farm in New Zealand or you move into leadership.
A typical first leadership role is being a Tech Lead.
That is a good question and the first lesson you learn as a leader. From a certain level roles become very open to interpretation and it’s very good to research your role, write down how you view it on paper and present and discuss those findings with your manager as in this example.
Tech Lead is an archetype of a Staff Engineer. Typically you stay an individual contributor which means you also do the work of a Senior Engineer. You are responsible for the technological direction of the team but typically not the people management which is left for the managment track. It’s generally not advised to combine both technical and people management. You typically rely on another person fulfulling the people management.
Techical decisions are 10% about the technical aspect and 90% about the people. The technical aspect should not be a huge challenge if you did valuable years as a Senior. You have to make sure your decisions align as much as possible not only with the dev team but with adjacent teams and upper management. A lot of persuasion, optimism, positivity and general communication skills are required.
Well the first switch you have to make as a leader is to not think in terms of “me/you/they” but “we”. As a Tech Lead you have very valuable experience and you should fight for your ideas but in the end people will prefer ideas that were not shouted at them from an ivory tower.
An ideal leader in an ideal environment is just a gardener giving everyone their ideal amount of water and sunshine. But sometimes you start in a desert. And then you might have to push some top-down ideas. You might face pushback, criticism, resistance to change and toxicity. Top-down costs capital. It’s sometimes required but it costs.
The top-down cost can be minimised by good storytelling and communication. Write your idea out. List all the trade-offs, make some pretty slides and add some humor and flavor.
Bottom-up decisions made in group are much cheaper. People will fight their own ideas less. Frame the problem correctly and you will be suprised how much people come up with the same ideas as you might have been tempted to push down. They might get some details different, they might diverge from each other but then as a lead you still have to possibility to summarise and compromise it into a decision you feel comfortable with. You plant the seeds and then tend the garden.
Also it’s cheaper to make a small step in the right direction than trying to solve too much with big leaps. Don’t expect too much right off the bat. A PR that comes in at 5/10, get it to 7/10 instead of 10/10. If noone writes any tests ask for simple tests. Try easing everyone in.
It’s important to safeguard you personal time to recuperate, to keep a healthy worklife balance. It’s important to stay optimistic and positive and to avoid falling too much into the defensive or worst reactive. This is not an easy exercise because as a Senior you might be used to your “expert” role and vigorously defending your ideas showing no vulnerability. But as a leader showing vulnerability and not going into the defensive creates trust in your team. As Tech Lead it’s again a delicate balance between being an expert and being a leader. When things need to be changed I would say lean more on your expert role. When things are going better lean more on your leader role.
But as any first-line leader will say it’s not easy. You will have expectations, pressure from the bottom, top and sides and you will get squeezed as a lemon so make sure you know some recipes to make lemonade.
As a Tech Lead you have to be “plugged into the feed” of the company as much as possible. You need to know the codebase, what managament is thinking, you need to know what your co-workers are thinking, you need to map out the company and stay up to date. You should be able to identify the obvious problems in the code and team but also sensitive and prepared to any unexpected threats. The threat or opportunity you don’t know about yet is just as important. From that feed you have to make priorities and stay proactive. Be sure to have good mentors and co-workers surrounding you keeping you up-to-date. Plan 1-1’s if needed.
Be mindful you don’t have to solve everything. Leave some growth issues for the other members of your team. You should be planting seeds of expertise, leadership, ownership and responsibility in their heads. Any trivial issue you tackle might be a wasted learning opportunity for another member of the team. Make sure you clear the way on the harder issues as you are probably still the most Senior on your team, and let other team members clear the rest and learn in the process.
Leadership is a whole new field of learning. You might know everything about a technological stack. Assume you start on level 1 of leadership. It’s a long road and one that is not easily learned by reading. But reading can still help and I would advise:
And if possible follow some leadership workshops or coaching. Learn about individual and team dynamics, leadership styles and situations. Find yourself a good mentor and soundboard. Too many leaders only get proper training after many years wasting a lot of effort into bumping into avoidable walls.