An unfulfilling campaign

Life as a supporter of a sporting team can be tough. You live and die with your team. A victory makes you smile for days and weeks and months and the world seems a beautiful place. A defeat leaves…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




What is a good Tech Lead

Tech lead emerges by itself, it is never appointed.

I have been wearing the Tech Lead hat for quite a few years now. There are a few different types of Tech Lead. I worked with 2 types closely. One type is called Uber Tech Lead, the other type is called Uber Technologist. The main difference between the two titles is: Technologies has more depth knowledge in technical side; while Uber tech lead is responsible for executing the project and make sure it can succeed. I am a Uber Tech Lead.

I want to talk about what a good Uber Tech Lead should look like.

First, a Tech Lead (TL) must understand technology in details. TL should be pretty familiar with the entire code base and tool set. Although a TL may not write as much code as other engineers, TL must be the person who understands the entire problem space the best. So, in order to be an efficient TL, one must spend time understanding and following what is happening in code. I personally write a few thousand lines of code every 6 months and review a lot of code written by other engineers. This can keep me sharp when I discuss technical problems with other folks and make technical decisions. As a Uber TL, your bandwidth will be consumed by a lot of other things, but a TL must protect a portion of the bandwidth to get into technical details.

Second, a TL needs to understand the business problem really well. You must play the bridge between business challenges and technical solutions. The reason we write code is to solve problems, writing code itself is meaningless until it solves problems. A TL needs to plan technical roadmap based on business requirements, and prioritize work accordingly.

Third, a TL needs to unblock other engineers. A project execution can be blocked by resource issues, blocked by cross-functional alignment, etc. TL is expected to unblock engineers. In order to do so, an excellent communication (both oral and written) is a must have for a TL. You should be able to describe the problem precisely and align different parties very efficiently.

Fourth, a TL must act like a glue of a team. Sometimes, I notice a 10 people team can only produce a 5 people result. Why? Because even if the 10 people are all very good engineers, they are not working towards the same goal. A TL must glue all engineers together, and help all of them move towards the same direction. One of the most important things to remember is: TL needs be able to tell “who should work on what at anytime”. This doesn’t mean a TL needs to assign work to individual engineers. A TL should observe first. Good engineers can figure out the right priority independently; and in this case, a TL should just leave those engineers alone; don’t micro-manage. TL only step in if you disagree with the work some engineers are doing now, you think it is not the right thing to do. And then, you need to have a debate (hopefully you are right) and try to change the engineer’s behavior.

Fifth, a TL needs to build a team’s culture. A good team culture can help the team overcome challenges, it can create an inspiring working environment. For me, I am advocating “strong opinion, loosely held”. I want everyone to have strong opinion, I am not a fan of people who are OK with any decisions and just implement others’ ideas. A strong opinion implies you must think through the problem and have built a rationale to support your opinion. This enables efficient debate. If two people with strong opinion debate with each other, they are not actually debating the idea itself, they are explaining the rationale behind ideas. The rationale is the most important thing, not the idea itself. And “loosely held” allows me to pick up the best rationale from different ideas, and maybe we can come up with a new idea, inheriting the best part from existing ideas. A TL needs to setup an example and help the team build a culture.

Sixth, a TL needs to care about people growth. When a TL tries to breakdown a problem into sub-problems and assign owners, you must think about if the assignment is good for the engineer’s growth. Only by growing engineers, can the team take bigger and bigger challenges.

Seventh, a TL needs to have the gut to take on challenges. A TL needs to have the “can do” attitude and give people the confidence.

Add a comment

Related posts:

I Think I Thought I Wanted That

Somewhere on Earth a customer thought of something they wanted. An algorithm had calculated within 99.9% certainty that the customer would purchase the product given the choice, but that was…

Creating Quiz Game App Using IONIC framework.

This is a journey about one of my project in my internship period which is a creating Android quiz game App using Ionic framework. I wanted to share my story of working on this app so it would help…