Tech Lead

Tech Lead

A tech lead drives projects and teams to meet their goals

Becoming a tech lead is the most common growth path for software engineers as they grow to senior and staff levels.

How to thrive in a new role that's much bigger than what I'm used to?

Senior Software Engineer [L5] at Google profile pic
Senior Software Engineer [L5] at Google

What should I think about and focus my efforts on when I get a project and a role that's of (1) bigger scope and (2) tighter deadlines than I'm used to?

Context

A reorg has suddenly thrust me into the TL role for a very high-profile project on a new team. This project is part of OKRs 4 levels up the chain and has the eyes of several director level people across different functions. From what I've heard, this project already suffered from "too many cooks in the kitchen" syndrome, and on top of that, this project has delivery date set in Q3, which is quite aggressive from our org's standards.

I've landed in this position because I was transitioning to this team prior to the reorg, AND the EM/TL/PM/2 L5s has been reorg'ed out, and they needed someone who had previously TL experience and was willing to do it.

I've previously TL'ed a team of 4 people, with important but "normal" priority projects. This is clearly a great opportunity for me, but I am afraid I'm not ready to handle it and I'm at a bit of loss as to what I should be focusing most of my effort on. With the tight deadlines I have, I feel like every day will be a battle so any advice on how to approach this will be appreciated.

I have one other L5 supporting me who I trust very much and a new EM who's rumored to be very good. We currently have 4 SWE including me and we'll be getting more at least 4 more engineers, with lots of adjacent teams helping out. I do also have good standing and connection in the org overall and I know how to get a "normal" project in our org over the line (I did an in-org transfer).

What I'm thinking about right now

  1. Knowledge Transition: since a lot of critical members of the team are leaving and I am taking over, I feel the biggest priority in the near term is to absorb as much knowledge from them as possible. So far, they have some prototypes, and I wanted to get my hands dirty, so maybe I should focus on is to understand the work that's been done really well, and the design choices that's been made already?
  2. Gather support: I feel like biggest personal risk is that I don't know how to show up in higher-stake meetings with directors. Is it any different? Where do you all see the risk is?
  3. Enable the team: I know the biggest responsibility I have, more than anything, is to make sure the team is able to work on the project and help us deliver this. Aside from the L5, I don't know a lot about the people. I feel I should putting my focus on ensuring they are as successful as possible, not focusing on my own technical knowledge as much, for us to succeed. Is that a good way to think about it?
  4. Self-management: I anticipate I'll be very stressed and pulled in many directions. I already feel this way. What are some tools I can leverage in "crunch time"?
Show more
177 Views
5 Likes
0 Comments
18 days ago

How can I safely plan a difficult project for which I have little context?

Senior Software Engineer at Series C Startup profile pic
Senior Software Engineer at Series C Startup

Context:-

  1. My team is going to work on a new project which involves upgrading a service and migrating/enabling all of the dependents to use the new service.
  2. This service provides a business critical functionality for our teams and the new version attempts to solve a lot of high impact pain points with the previous version.
  3. We have just inherited this service and none of us have worked with it or any of its dependents before. We have some support from the previous team that worked on this project but only in a consultation capacity.
  4. This is a project that has been attempted multiple times by various teams over the years - unsuccessfully or with little progress. My perception is that it's going to be a difficult project with low-moderate chances of success.
  5. There is a lot documentation but most of it is somewhat outdated. There are a lot of PRs as well but these are for the unsuccessful attempts so I'm not sure how impactful it would be to go through them.
  6. The plans for the previous attempts only had internal milestones for the team and a single big-bang completion milestone for stakeholders.

Questions:-

  1. How can I identify smaller, independent high-level milestones that are relevant for external stakeholders?
  2. How can I come up with broad estimates and capacity requirements for the external and internal milestones if I'm not clear on what these milestones would require for completion?
  3. How can I think about de-risking this attempt of the project and improving the probability of success?
Show more
171 Views
6 Likes
2 Comments
a month ago

How to remove yourself from being a bottleneck?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Due to unforeseen circumstances from past 6 - 8 months, I've been the Senior most engineer in my team, (I have a total of just ~2.7 YOE). My team consists of ~12 SDE 1s (New Hires) and 2 SDE2s (The other SDE2 being promoted very recently). My manager does a great job filling the role of Senior Engineer which reduces bit of pressure off of me.

However, due to necessity in the team I've ended up being SME in all the services owned by our team. This leads to everyone reaching out to me to help them with their queries, I try to document some of these and add in the Wikis so that it can be easily accessible for others next time. However, when it comes to certain tickets and issues, I end up having to pick that task up myself (Manager does not ask me to, but at same time i know that for someone else the ramp up time required to fix the issue would be too high).

I recently tried to reduce this (2~ months ago), this led to our overall ticket health getting worse and I had to again start looking into them myself and guiding each on-call cycle with right action items for the tickets etc.

This involves me helping them to do the following :-

  • Prioritize correct tickets to look into for the on-call cycle.
  • A potential fix for the ticket so that they know where to look into.

Due to which it ends up taking 6+ hours weekly to keep this running. I don't really mind doing this; however, I don't feel like this is a scalable solution and would eventually want to slowly scale down from doing this and have my team being able to be self-sufficient.

What's the best way to go about this without affecting my team's ticket health?

Show more
2.2K Views
26 Likes
Editor's Choice
4 Comments
7 days ago

How to Balance Responsibilities: Prioritizing Personal Work vs. 'Glue Work' in a New Team Environment.

Senior Software Engineer at Ex-Apple profile pic
Senior Software Engineer at Ex-Apple

Hello everyone,

As a senior engineer L5 in my company for 1 year, I recently found myself in a new team with a new direct manager but report to the same Director in the same Org due to the recent company restructure/company reorganization as part of layoff changes. My Director and I are the direct responsible individuals for the Backend Platform System for the last 1 year. However, I am finding that a significant portion of my time is being taken up by "glue work," such as onboarding new teammates, updating the Wiki, documenting On-call Runbook, mentoring cross-functional team members, providing code reviews for new developers, and unblocking people in their code development. While these tasks seem important, they are making it difficult for me to focus on my own projects.

In my first one-on-one, my new manager expressed a desire for me to take on new initiatives. I am eager to do so, but I need to be able to focus on my own work to make this possible. My manager understood that the frequent on-call support was a blocker for me and asked me to train and onboard a new teammate to take over the on-call support, as well as field requests from users and help others with their work. However, I have still found myself doing a lot of training and providing support even two weeks since my last meeting.

I would like to hear from others who have found a way to balance these responsibilities effectively. How can I prioritize my own work while still contributing to the team's success? I know this will be a difficult decision, and I'm not sure how to approach it. I'm worried that if I stop doing some of these tasks, it may impact my relationship with my manager and team.

If anyone has faced a similar challenge, I would appreciate hearing about how you approached it. Did you stop doing certain tasks and responsibilities, and if so, how did it affect your relationship with your team? Any advice would be greatly appreciated.

Thank you.

Show more
333 Views
8 Likes
4 Comments
3 months ago

How can I help juniors?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

I am mentoring juniors for the last few weeks. In the past, I've been mentoring people with some professional experience but this colleague doesn't have any. Now, after these few weeks I am wondering:

  1. How much time should I spend helping them? Currently, I have to spend 2-3 hours for person per day otherwise they will be blocked for days. Even though I am trying to explain that they can ask other colleagues as well, they are not asking anyone else.
  2. How can I be sure what are they suppose to know and what's not? For me, I have my own understanding of what they should know but I know for others may differ. In my country the juniors must be part of an academy before applying for a job. I know what they learn there, so I know what hthey should know and what not. Now, after these few weeks I realize they have gaps which they shouln't have. On the other hand, the academy is typically more than an year and it makes sense many things to be forgetten with the time.
  3. How can I measure properly their performance since they are just starting? What is a normal performance?
  4. How deep should I go in explanation of his questions? I believe this is where the high quality questions will help them, but I believe they have a lot of gaps to make a quality question and give the proper context.
  5. How can I help them to improve their questions instead of having to explain for hours one topic and then another, etc?
  6. When should I say I give up on him? I really want to try everything before giving up.
  7. How to stay less emotional when explaining the same things for hours to the same person?
  8. How can I help them to understand me better? Sometimes, no matter how am I explaining specific case/topic and no matter what examples, nothing helps.

I think the colleagues are really motivated and this is one of the reasons I want to help them. I want to be sure I did everything I can.

Show more
1.1K Views
17 Likes
13 Comments
4 months ago

How to become a top developer in outsourcing company?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Even though starting to work for a big company like Meta, Amazon, Google, etc. I believe is a hard to achieve (I haven't work for) somehow it looks pretty straightforward. Learn for interview, get the job, level up. Yes, I am sure it's hard and not many will do it but still you know what should be done (yes, may don't know how). But let me tell you a different story:

I work in a not that famous country in the EU and non of the top tech companies is there. Actually 90+% of the companies are outsourcing companies. As a SE with 10 years of experience in the outsourcing world I can tell you how it works: you work on a legacy code which is so old and so bad (hundreds of people have tried write code there) you can't see good practice at all, no code reviews (sometimes there is bad it is very rare), no unit tests, performance review is only about client's feedback and so on, you got the point. It's about the money only and nobody cares if you are good or not if the client is happy. In very rare cases I have started something from scratch but all of my colleagues were so bad progmmers like myself that we messed up all. It's a deadlock. After 10 years I realized I am a bad programmer and I've seen so many bad practices that I have no passion to do anything anymore. Now to the questions:

  1. Is it possible to apply best standards in an outsourcing company like those in FAANG and if yes, how?
  2. How can I fill all the gaps I have at the moment? Can I fill all the gaps with side projects only? How can I fill them when nobody will teach me anything new. Nowone will review my code and like @Alex said, they are the main source to learn :) How would I know is the code good or not? Could it be better?

The ultimate goal of my career (and maybe in life) is to fill the gap not only in my skills but to create a company (product based or outsourcing) where everyone who join to have a chance to become a great programmer. But before helping others, I need to help myslelf. This is how I found Taro.

Show more
236 Views
3 Likes
7 Comments
4 months ago

Ok to have low code output for IC5?

Senior Software Engineer [E5] at Meta profile pic
Senior Software Engineer [E5] at Meta

This quarter, my skip requested/ gave me an opportunity to lead an org wide efficiency initiative as we are at risk of hitting quotas for some internal services (he mentioned potential IC6 scope) and it’s quite urgent to act on it. My role is to start and lead a large team of engineers on this initiative which involves tons of direction to ensure our org isn’t over quota. I would look my role as a hybrid of TL+ TPM with following responsibilities: analyzing data to find opportunities, creating roadmaps for the program, supporting engineers for execution to reduce usage, project management, understanding and enforcing processes, building knowledge on internal services, coaching engineers, setting Eng excellence culture within the org. All that to say, given limited time and a need for someone to lead, I will be focusing on direction and delegate all of the execution work to the squad.

  1. How risky is it to have low code output as an IC5? Given the year is just starting, does it make sense to explicitly discuss this with my manager and skip that my code output will be close to zero in Q1?

I did read some accounts (anon post on WP) where EM and skip aligning on low code out out but the IC5 still got MM at the end because they had only 10 diffs for a half. I don’t want to be in that position.

  1. Should I deprioritize some direction work and allocate some time for coding on my timeline through P2 projects? This will increase diff count but that just seems not a great usage of my time. TIA!
Show more
218 Views
7 Likes
2 Comments
4 months ago

What should I do in a situation where my manager is well-meaning but incompetent?

Senior Software Engineer [L5] at Google profile pic
Senior Software Engineer [L5] at Google

Apologies in advance for a long question. Not sure how to ask this question without providing deeper context.


I’ve been working with my current manager for the last 1.5 years. While they have recently helped me get promoted to Senior, it’s been a constant struggle. I dread our 1:1 almost every single week because it always run overtime and we are often still not on the same page. 

I see two major issues that haven’t notably improved in the times I’ve reported to them.

(1) My manager isn’t able to coach me, or any of the SWEs on the team. My manager doesn’t seem confident when we have career discussions - I recently asked them what they thought was the difference between good TL and a great one, and they struggled to coherently answer this. Instead, they said they would know better after the next performance calibration.  Additionally, none of my teammate has gotten proper coaching either.  For example, a teammate struggled to submit code due to their poor code quality and thus had low CL velocity, so my Manager simply told them to submit more CLs, which only made them more stressed without a legitimate way to improve. 

(2) My manager lacks technical understanding of our projects and constantly pushes for speed. My manager was externally hired, and to this day, they don’t really understand the complexity of the work our team does. I understand EMs don’t need to contribute code directly, but my manager almost always underestimate how complicated the projects our team takes on are. As engineers, we frequently have to defend our timelines, which is not only frustrating but also pressures some teammates to favor suboptimal design or hastily done CLs that just causes even more churn. 

The weird part is, my manager often seem unaware of their own actions, and when I talk to them about these issues, they are always receptive to feedback and seem willing to improve. However, I simply haven’t seen enough improvement in the last 1.5 years. 

I could leave, since this is having an impact on my emotional well-being. But I do have good standing w/ my own team and the overall org, and I want to use this situation to learn as much as I could. I know that I myself have a lot to learn as a tech lead (Thanks for , it’s really helpful), and I know I can probably get a bit ahead of our projects and start estimating/de-risking earlier, so my Manager doesn’t get overly aggressive with timelines. I know I can also take this chance to more closely mentor my teammates and help them succeed, since they aren’t really getting it from our manager. 

I want to stay, but is it the wrong decision because I have little career support from my manager? If I do stay, what should I focus on so I can really help my team and at the same time learn something valuable for my career?

Show more
1.2K Views
20 Likes
3 Comments
5 months ago

How collaborative, creative, and engineering driven do you get to be in an L5 role in FAANG+?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

At my startup I was asked to deliver feature after feature + bug fixes by PMs as fast as possible without much time for proper refactoring work or engineering initiatives. Also it was pretty individualistic where you get assigned a task and only work with other engineers during a tech spec review meeting, code review, and syncing with a backend engineer (as an Android dev).

From Alex’s video on getting promoted to tech lead, I saw how you can 1) drive projects as an L5 engineer (vs a PM putting that together with designers) 2) Not have to know how to implement everything yourself for a project, but work with many others and facilitate the team. This sounds 100x more engineering driven and collaborative than at my start up with few developers. Is this common to many people’s experience of the norm in FAANG?

What I liked about Alex's story is also how he had the time and space to do things like document the differences between iOS and Android, as well as go all the way through to making a data analytics plan for monitoring it himself. Seems like a lot of freedom and ownership which I didn't feel I always had the time for personally. Being able to not have to spend 80% of your time coding but rather doing deep work thinking, planing, designing holistically sounds extremely satisfying and rewarding as an engineer. Maybe this also comes with experience at startups as well?

Show more
104 Views
3 Likes
2 Comments
5 months ago

How to manage politics from more senior engineering folks?

Anonymous User at Taro Community profile pic
Anonymous User at Taro Community

Hi all

I recently joined an organization as a senior where I was made tech lead within 3 months of joining. This was somewhat related to recognition of my work among product and my peers.

I advocated for good engineering practices such as automated integration testing and established projects for cross org collaborations to help deliver whats important for the organization.

All of this was quickly realized as a super critical projects by the organization. I created tech specs and prototypes for these projects.

However recently the organization hired a principal engineer.

since he was new I volunteered to help him onboard and asked for his advice on the new super business critical project that was next in our todo team pipeline. He is an ambitious guy so he wants to create his mark in the organization.

But for some reason the way he is approaching it doesn't seem right to me.

He plans to create a new team taking over the business critical project while splitting the newly formed team I lead on the same project that I helped him ramp up on.

I opposed to this asking for rationale for a new team.

there seem to be now two impressions of my work:-

  1. held by my peers, folks I lead and product manager of good business delivery and product timelines. I am respected among both.

  2. the principal Engineer tries to devalue my work in front of senior engg. Leadership saying things like I am overcommitting and under delivering if I do this project with the existing members of my team in public and in front of senior engg leadership.

The automated integration testing project which no one was doing before and we were starting from a basic version to iterate on. This is now communicated to engg management as every team is trying to do their own testing.

My engg management for some reason is siding with him since he has 15-20 years of experience and i have 5. He also is principal and i am 2-3 levels below him.

for some reason I am being micromanaged with no fault of mine.

From engg management perspective I have been just told to lead the project that I am currently leading and just help the team formed by principal engg to start the project.

I have communicated my expectations of being able to continue leading the project. Product is in support of that but engg managment isnt.

I have also tried giving feedback to the principal engineer that his actions are disruptive to the team and becauase of what he is doing he is slowing us down and blocking us from doing critical projects.

My worry is despite doing the hard work the project I have the most context on and I worked on for a while is being given to someone else and second i will not be given credit for the hard work I am doing.

Should I just change teams. I dont want to leave my existing team because I do think they need me but I feel I would rather create more impact where I dont have to swim against the tide. I may also be suffering from sunken cost fallacy here where I knew I led the development of a new critical project

Tia for your help.

Show more
186 Views
2 Likes
2 Comments
5 months ago

Mid Level to Senior Promotion - What should I keep in mind?

Senior Software Engineer at Grab profile pic
Senior Software Engineer at Grab

I am trying to get promoted to Lead Software Engineer, which relates to an E5 level at Meta, if I am not wrong. I have seen several engineers in my organisation coast at the current level I am.

I wanted to understand if there are some key things I should be doing in order to perform at a Tech Lead level, so that I am promoted to one as well. This would be a bit long question, but please bear with me.

Following are some of the things highlighted in a few discussions:

  1. Should have demonstrated complex backend system designs - How do I create this opportunity to build a complex system for myself? Often, the projects we are a part of don't require complex solutions.
  2. Have a very strong code quality
  3. Mentor other engineers - I started having 1:1s with Junior engineers on how to grow. Have not been doing this with Senior Engineers, but I try to jump in calls with them whenever they need some help. Often, the credit goes hidden, and sometimes it does bother me, but not sure if there is some way around it. What are your thoughts?
  4. Handling production outages and incidents - Trying to be on top of it. Recently, have been putting out short term fixes, but alongside working on some libraries to fix it in an extensible way and have a larger impact with other teams as well. Sometimes, having visibility for my work in other teams seems to be difficult, but trying my way around this. If there is something you can recommend, that would be great.
  5. Should I mention in my skip levels that this is something I am targeting for myself? - Right now, my focus is to try to uplift the code quality, work on larger designs (a question mentioned wrt this), trying to uplift the team (I have created a channel where I share stuff that can help the team upskill, brief nuggets of information on how to write good code etc. Doing this almost twice a week for around 2 months now), trying to mentor engineers within the team.

Another aspect is that my team would be getting changed soon due to organisational requirements. Given that, How do I make sure I am on the right trajectory to getting promoted ? (One thing on top of my mind is that I would be asking for junior engineers whom I can work with and try uplifting, alongside asking for opportunities/projects that would have large visibility and impact.)

Do you have any other advice for me?

Show more
1.2K Views
21 Likes
Editor's Choice
8 Comments
6 months ago

A tech lead is responsible for guiding multiple software engineers throughout the execution of a project. They usually have many years of software engineer experience and system design knowledge to help them navigate through complex software engineering situations. They work with multiple stakeholders to ensure that a project is delivered on time. They also set expectations for deliverables and quality of the project.