Profile picture

Tech Lead Q&A and Videos

About Tech Lead

Senior Software Engineer at Series C Startup profile pic
Senior Software Engineer at Series C StartupPosted June 10, 2023

How to convince my engineering org to participate in large-scale migration?

Context: (1) My team owns a service for which we're rolling out a new version with a big revamp of all the public interfaces and a ton of breaking changes. (2) This is a legacy system that is being refactored to resolve some severe issues that its consumer systems have been complaining about for a long time. (3) This service has many consumers in our org across multiple teams that depend on it for a lot of critical functionality. (4) We need to migrate all consumers to the new service. My team cannot parallely support both the versions and the legacy system has to be deprecated before the new service deployment. ### Challenges: (1) Originally, the plan was for my team to roll out the new service and migrate all of the consumers to the new service as well. (2) Now, we've had a huge scope expansion in the refactoring itself due to which the project timeline has extended massively. (3) My team feels that working on such a long timeline project is risky and prone to further scope expansion if new consumers start using the old legacy system in the meanwhile. (4) Another challenge with this is that my team has no context or understanding of all the consumer systems. ### Questions: (1) What approach can I use to now change the plan and convince the managers/tech leads of the consumer teams to own the migration of their consumers code to the new service? (2) In general, what approach would be ideal for such a large-scale migration - Centralized migration by the service provider team vs distributed migration by all the respective consumer teams?

172 Views
1 Comment
Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro CommunityPosted February 26, 2024

How to grow when there are no E6 role models?

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!

156 Views
2 Comments
Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted February 1, 2023

How to turn around my trajectory on my team?

I joined my current company a bit more than a year ago as an L4. Within 4 months, I'd launched a high stakes project, and after some churn in the team leadership, I was put into the role of being a tech lead to my remaining team of L3s. As a pseudo TL, I did well in the mentorship and technical guidance responsibilities, but my code output dropped drastically (due to my projects being in the design phase which were being done by my juniors with me providing high level guidance). In the last three months, I suffered some mental health issues. My work productivity dropped significantly during that time. I've been very open with my manager about my mental state throughout this process, and they've been very supportive of the things I need to do to recover. Around this time my team also hired an L5, who is now officially the TL. Due to my drop in performance in the latter half of the year, I'm afraid my manager won't trust me with important projects. I wonder if I need to again prove my credentials to keep me on track for L5. I feel very low about my software development abilities. This has made me demotivated and disinterested in my work. I took a couple weeks off, yet I don't feel like going back to work. I'm not considering changing teams due to immigration issues. I also don't want to leave a team on a low. Any tips on turning around my motivation, and trajectory on the team? What can I change in my mindset and working style to overcome my struggles?

142 Views
3 Comments
Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro CommunityPosted January 14, 2024

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

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.

140 Views
3 Comments
Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted December 23, 2022

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

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?

129 Views
2 Comments
Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro CommunityPosted November 4, 2023

How to influence engineers to hold up their timelines?

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?

123 Views
3 Comments
Senior Security Engineer at Taro Community profile pic
Senior Security Engineer at Taro CommunityPosted November 1, 2023

Mapping a Road to Success as a Security Engineer

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.

117 Views
8 Comments

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