Taro Logo
Profile picture

Tech Lead Q&A and Videos

About Tech Lead

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

How to deal with more responsibility in the team and grow as a leader?

Mid-Level Software Engineer [SDE 2] at Amazon profile pic
Mid-Level Software Engineer [SDE 2] at Amazon

I joined Amazon for my first tech job as an SDE I and was able to promote to SDE II after 1 year. Fast forward to 9 months after promotion, My onboarding buddy who has been here ever since the team was founded is leaving. I ended up being the SME for one of the team's projects that makes a lot of $$$, which means a lot of eyes are on it. Although we do have a couple SDE IIIs on the team, they've been more focused on other equally important projects and don't have too much knowledge on this one. I'm starting to feel the weight of the extra responsibility as I often get pinged for escalations, have a lot more say in meetings, and invited to meetings for the roadmap of this project. There was also a recent reshuffle in the Product side and I've become their go-to guy for anything related to this project.

Having joined the industry less than 2 years ago, I kind of feel like things are really moving fast and I'm a bit overwhelmed to be honest. I was still thinking on how to increase my technical depth after promotion, and I'm not even sure if this is a good situation to be in or not. But at the same time, I do want to overcome this and perhaps turn this situation into a growth opportunity.

In my forte review, there were many comments on the expectation of me evolving into a mature leader for the team and this feels like an opportunity to work on that. I'm kind of confused on what direction to take at the moment. What would be some things I can do to make the most of this opportunity and grow my leadership skills? I feel like before all this happened, I was focusing on growing my technical skills and didn't really pay atttention much to the leadership side.

This might be a vague question, so I just wanted to see if anyone has been in this situation and have any advice on how to best navigate this or share similar experiences

Show more

How to grow when there are no E6 role models?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

I'm an E5 iOS engineer reporting to an M2 at a Big Tech company. I am the mobile lead for a complex mobile-heavy project spanning 2 other teams. This is a high visibility project that's on the VP Eng's & VP Product's radar. This project had 4 E6s:

  • E6 iOS engineer on partner team #1 delivered an onboarding guide with 70+ compilation errors and took a month to fix all the bugs blocking our integration. He did not test his code at all before delivering it to us.
  • E6 iOS engineer on partner team #2 delivered a component that did not tokenize SSNs properly, resulting in raw SSNs -- this would have caused an s0 incident, but my team fortunately caught it before it went to production. He also did not test his code at all before delivering it to us. My team's E6 BE engineer spent a month fixing it for that team, resulting in delays to our project's BE.
  • My team's E6 BE engineer had a falling out with my M2, so he switched teams, leaving us in a bind since our only other BE engineer (E5) on this project had resigned at the end of last year.
  • We got a replacement E6 BE engineer, but he is very slow, requires a lot of handholding, and most of his PRs have serious bugs -- I feel he's performing like an E4. A junior iOS engineer joined our team at the same time as he did but delivered more complex features in the same amount of time.

I switched to BE to de-risk the project after I took care of all the iOS fires. I've already fixed more BE bugs than the replacement E6 BE engineer.

Of the 4 E6s, I feel the one who switched teams was the strongest, but my M2 said that E6 did not exhibit ideal E6 behavior because we're over a month late due to BE delays and we keep discovering more and more BE bugs. The E6 also changed the design 3x when fixing the SSN issue. The M2 told me not to use that E6 as a role model, but the other E6s are even worse!

Show more

Promotion Level Project?

Data Engineer at Taro Community profile pic
Data Engineer at Taro Community

I'm at a company where we are migrating from AWS to Snowflake due to Snowflake's simplicity and cost savings.

The Team responsible for the migration and in charge of Snowflake is led by a guy who is difficult to work with. He's not unpleasant, but if he gets you on the phone, he loves to talk and take up a ton of time. I was literally on a call with him for 2 hours yesterday because he goes off on tangents and likes to hear himself talk. He also has a bit of an accent which makes it harder to understand him.

So he's a Director and leader of that team and I'm a Data Engineer on an adjacent team. As part of the migration to Snowflake, he had the company agree to license a piece of 3rd party software to move data into Snowflake. This piece of software is one that none of the Engineers in the department want to use: it's old, closed-source, no one knows it and is a dead-end on a resume. On top of that, I'm pretty sure it's completely unnecessary! I think Snowflake provides a way of getting data into it that works as well. The biggest thing is the cost! It's a whopping percentage of our cloud spend!

This director had a good relationship with the VP of my department (my former skip) who was the one who signed off on the 3rd-party software but recently left. I was discussing the situation with a colleague today and realized that since my former skip is no longer around, I could potentially make the case to my new skip, which could earn my plaudits. It's an easy way to save the company a pile of money every year (multiples of my salary).

So I'm thinking of doing a POC of how I can replace the 3rd-party. I mentioned this to my manager today, and he said we already have a 3 year contract with the vendor. I think he's resigned to the idea that we're locked in for 3 years.

If I can reproduce the functionality of the 3rd party software (just bringing in data into Snowflake), should I make the case to my new skip (who doesn't know me yet)? I'm assuming I should go through my manager first.

Should I try and share the credit with my coworkers who also don't want to use the 3rd party and would probably back me up?


Show more

I'm Sanjay, Senior Director at a Series B Startup. AMA!

Sanjay Siddhanti (Senior Director of Engineering at AKASA) profile pic
Sanjay Siddhanti (Senior Director of Engineering at AKASA)

I'm doing a soon: I'll use this thread to collect questions and will follow up to answer anything we don't cover within the hour.

I'm Sanjay ( / ) -- I'm a Stanford grad (same as Rahul), where I got a BS in Computer Science and MS in Biomedical Informatics. I've built my entire career in the Bay Area, with the past 5 years at AKASA, an AI healthcare company to help revenue cycle teams.

I'm the Senior Director of Engineering at AKASA. I joined AKASA in 2019 as one of the first employees when we were a seed-stage startup. I originally joined AKASA as an individual contributor, and quickly switched over to management. I built much of the company's early technology as an IC and later as a tech lead / manager. I also started and managed multiple engineering teams at the company, including Platform Engineering, now an org with 20 engineers.

Happy to answer questions about:

  • How engineering leaders think about the role of Senior, Staff, and Principal ICs
  • How and why to transition from IC to management
  • The differences between an Engineering Manager vs Engineering Director
  • How to hire and retain great talent
  • How to succeed in a startup environment

I can also discuss how to introduce effective development processes (code reviews, agile development, postmortems, planning, etc) in early-stage companies and how to evolve these practices as a company grows.

Show more

Feeling stuck because of the unwanted office politics.

Staff Software Engineer at Taro Community profile pic
Staff Software Engineer at Taro Community

tldr; I am a Tech Lead working in of the big tech giants, getting burnt out due to office politics and ignorant managers.

I am one of the few people (~20) who accidentally was made remote, this was the result of one of the irresponsible move from one of the tech giant.

Anyways, I was part of a team for almost more than a year and the company culture was a bit shocking to me as my manager refused to do 1:1, lack of quality work and ignorance because of me being the remote was evident.

Six months before I, including my team, was transferred to another team with a greenfield project (with little or no prior info), we worked really hard but after 3-4months, another reshuffling happened and most of the team was moved to other projects/team. After couple of months the team was finally dismantled, I thought we will go back to our original team but to my surprise, instead of retaining me, they hired two new lead engineers in their location. In between all of this I was surprised to know that my manager (previous) didn't fill my annual review, when I tried to contact him I didn't get any response. I also scheduled a meeting with him but he didn't show up.

Few weeks before, I was moved to another team, which I found was in the mid of big release. The Principal engineer who was responsible for the design and architecture of the system was moved out before I joined so there was no knowledge sharing per se. I tried to contact him but he is too busy to entertain me now. During the first couple of days, my new manager briefed me that I am the owner of this new project and I have to look after each and everything. The project in itself is very huge: It was in design phase since last 1 year, and it depends on 2-3 teams. Everyday I am pulled into random meetings where there is a lot of alignment going on with some crucial decision making as the project is going to be live in new few months. In the daily sprint the manager wants to make sure I have enough work assigned to me as well. In two weeks I am almost burnt out as I have little or no time left after hours of meeting and going through the random documents.

Recently I came to know that there will a week long in-person workshop to get an alignment on the various decisions on the current project and I am not invited, I pinged my manager for the same but there is a long silence.

As of now, I have little or no breathing space to prepare for the interviews and almost on the verge of burnout.

Few important points:

  • To my surprise my official manager is still the same manager (first team) and he has still not filled up my performance review.
  • I moved countries because of personal issues so leaving the company may not be easy as of now. I have a lot of financial responsibilities, plus the current market and immigration condition has made the condition worse.
Show more

Should I join an important project with difficult team mates or a not so important project with great team mates?

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I was lucky to join a very competent and lovely platform team when I joined my current company. I have been working in the same team for 18 months but due to re-orgs people have moved out and we are currently 3 people and we were 9 people when we started out.

We have been doing mostly maintenance work for the past 3 months after re-orgs and recently we were given a choice to work on two projects.

There is one project, lets call it Project Hero which my skip level manager wants me to join. I would be the main PIC for this project and it will involve a lot of integration work and system design. This project is with new team mates and a new manager with whom I have not worked but they don't have the best reputation. However, going by FAANG level, they should be good enough to get the job done. Only downside is work-life balance might be skewed if I join here. However, if the project is a success, it sets me up for Senior level promotion.

There is another project, lets call it Project Nero. This will be with my existing team but from a company perspective, it's not a very important project. But I will be working with my existing team mates who are both capable of delivering a solid project and a joy to work with. However, my work here will be overshadowed by other Senior engineers on the project.

Which project should I join? I personally want to do Project Hero but not with the people present there. Also it will be challenging.
Project Nero will be challenging also but more up my comfort zone.
Given the current economic climate, I feel being in more important teams will help keep my job.

Show more

How to push for changes when not directly in a leadership position?

Senior DevOps Engineer at Taro Community profile pic
Senior DevOps Engineer at Taro Community

Hi Taro,

I'm cross posting this from the premium slack because it was raised that the answers might help the broader community.

I work for a small company - the engineering org is approximately 60-70 people all told. The company is about a decade old, but has grown more recently, and I joined the small SRE/Developer Tooling team within the last year. Historically, the company has operated at a relatively slow pace, and followed practices that are, politely, out of date. Just to give an example of the kind approach the company takes:

  • We operate out of a single AWS Region, with no DR or failover capabilities
  • infrastructure was provisioned ad-hoc and manually, with effectively no Infrastructure as code
  • Developers would typically bypass deployment pipelines to manually update files or run commands, even for production systems
  • QA is primarily manually performed for our SaaS application. There is some automation, but this is something that QA runs and checks the output, instead of automatically tracking the output in some way.

In my role, I've been pushing for change where possible, trying to evangelize the better ways of working, such as Infrastructure as Code, logs sent to a centralized location like Splunk, and deploying to other AWS regions to assist in both regional lag and general DR/failover concerns.

Thankfully, there's definitely some purchase there by leadership, at least on a high level, as they're generally receptive to these changes and recognize that they cannot continue with the same old practices. However, this mentality doesn't appear to be flowing through to the rest of the engineering organisation. My team and I are repeatedly asked to revert changes we've made, often because developers are merely used to the way things used to be, or because PMs/teams want to stick to a schedule or speed that was only possible via shortcuts (such as manually provisioned infrastructure). All of this has happened despite repeated public comments by some in leadership against those requests specifically.

What can I do to push for these kinds of changes, when I'm not in any kind of official management or leadership position? I have no official power beyond a general remit by my manager to uphold certain standards for my team.

Show more

How to influence engineers to hold up their timelines?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

I'm an E5 iOS at a Big Tech company reporting to an M2. I'm leading the mobile side for a multi-quarter product project that leverages work from 2 platform teams. Most of the complexity of this project will be on the mobile side. My backend lead is an E6 full-stack web engineer reporting to an M1 who reports to my M2. The M1 is on parental leave until late Dec / early Jan. This E6 has been an amazing partner and teammate.

The 2 platform teams have missed a lot of their timelines. One dependency is about a month behind schedule. They often give us deliverables that are dev-complete and not tested (e.g., compilation errors, etc.). We have sync meetings 2x/week, but 1 platform team has never attended any of these meetings. The other platform team doesn't always send the same engineers to the meeting and doesn't always know the status of their own deliverables. That platform team's EM got terminated for performance reasons before this project started, so their M2 and a TPM have been tag-teaming to fill in the gap. That means sometimes their M2 attends the sync meetings, sometimes the TPM attends, sometimes both attend, and sometimes neither attends. The TPM sends a weather report on that team's deliverables every other week, but hasn't sent one in the past month. In his last email, he listed my E6 and me as the DRIs for their team's deliverables. When I confronted him about it, he said it was a mistake and he'll fix it in future emails. How do I bring visibility into these delays to external stakeholders?

I created a shared Google Doc to track all the dependencies, including when our team needs the deliverables, the other team's ETAs, and any notes. However, it's been challenging getting ETAs from the other teams. When I tagged them in the Google doc asking for ETAs, they just ignore me.

My manager gave me feedback to "influence engineers to hold up their timeline than push for hard commitments". Do you have any concrete advice here? I'm not sure how to do this.

After I escalated the 1st platform team's unresponsiveness to their Director (3 levels up), the E6 iOS DRI became very responsive. Escalating to that E6's skip level had not been effective. Should I just keep escalating everything or is there a better approach?

Show more

Mapping a Road to Success as a Security Engineer

Senior Security Engineer at Taro Community profile pic
Senior Security Engineer at Taro Community

I have read several articles on becoming a Staff Security Engineer or Principal Security Engineer, and I understand that career growth is not just about personal aspirations but also about aligning with the organization's needs. In my current situation, my goal is to increase my visibility within the organization. I believe I've spent enough time working internally, but a significant part of my visibility in the security community is still pending. My ultimate goal is to enhance visibility, establish a brand as a security engineer, exert influence, engage in cross-collaboration projects, and grow my presence in the community. To boost visibility, I realize I need to engage with the community by writing blogs, creating tools, giving talks, and attending conferences.

I've observed exceptional performance by certain engineers and have often wondered how they can think outside the box, achieve skip-level promotions, and grow exponentially within the company. Do they have mentors? How can one find a mentor, and how do you determine if you need a mentor?

How can I start this journey and find the motivation to do so? Additionally, how can I maintain consistent motivation, as motivation may fluctuate? For instance, after two weeks of hard work, there might be a dull and weak period, and then you need a kickstart to regain the curiosity you had the week before.

I do find curiosity in my current role and the nature of work as an Application Security Engineer, but sometimes I also think, should I explore a bit of change towards offensive security or red teaming?

Furthermore, my personal passion and motivation always lead me towards delving into technical aspects. How can I align more with the business needs of the organization and develop my business acumen skills? How can I develop multiple skills to operationalize application security engineering in a team?

In my current location, there are limited job openings for security engineering positions, making it challenging to switch roles. What are other possible options for me in this situation?

In summary:

  • Is there a roadmap to grow as a security engineer within the organization, gain influence, create a personal brand, and secure promotions?

  • How can I enhance my visibility in the security community and maintain consistent motivation?

  • If I find myself stuck in my current role, because of limited openings in my current location, what alternative things can I explore?

  • Given that many interviews for security engineer positions now include coding rounds, is there a structured pathway for enhancing coding skills specifically tailored for security engineers?

  • How can I maintain consistent motivation, as motivation may fluctuate?

  • How can one find a mentor, and how do you determine if you need a mentor?

  • How can I develop multiple skills to operationalise application security engineering in a team? What does even operational excellence mean?

Any insight will be highly appreciated.

Show more

Learn About Tech Lead

A tech lead is a senior member of a software development team who not only has strong technical skills but also takes on a leadership role. Unlike a traditional manager, a tech lead focuses on guiding the technical direction of a project, ensuring alignment with business goals and fostering collaboration among team members. The role demands a delicate balance between technical proficiency and effective leadership.
One of the primary responsibilities of a tech lead is to provide technical guidance to the team. This involves making high-level technical decisions, ensuring the adoption of best practices, and overseeing the implementation of solutions that align with the project’s requirements.
A tech lead has a crucial role in fostering collaboration within the team. This involves facilitating effective communication, resolving conflicts, and promoting a positive team culture. A tech lead creates an environment where team members can share ideas and work together seamlessly.
They aren’t typically regarded as project managers, but tech leads are often involved in project management. This includes task allocation, timeline management, and ensuring that the team can meet all of a project’s milestones. Balancing technical objectives with project goals is one of the key responsibilities of a tech lead.
A tech lead has a responsibility to mentor their team members. They should guide junior software engineers with knowledge that they have gained during their career as a software engineer. They should be providing constructive feedback and creating opportunities for getting their team members promoted.
A skilled tech lead will influence the success of a project. Their technical abilities and leadership contribute to efficient project execution and ensure that a team delivers high quality software within an established timeline.
A deep understanding of an organization’s business goals, technical understanding behind a team’s stack, and a broad knowledge of the system architecture is essential to becoming a tech lead. They must constantly be aware of what is happening on their team as well as adjacent teams. They must also have a proven track record of success.
The impact of a tech lead extends beyond just coding. Their role is significant in driving the success of projects and teams. They are able to build software with a business context in mind. They know how to structure a project in a way to reduce risk and increase confidence in the project. Taro contains resources that can help you to become a more effective tech lead.
Show more