Profile picture

Tech Lead Q&A and Videos

About Tech Lead

Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted January 11, 2023

How to become a top developer in outsourcing company?

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: Is it possible to apply best standards in an outsourcing company like those in FAANG and if yes, how? 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.

324 Views
7 Comments
CTO at Early-stage startup profile pic
CTO at Early-stage startupPosted July 6, 2023

What resources do you recommend to learn more about engineering management and leadership especially in a startup context?

I recently became CTO of a small early-stage startup where I'm leading all technical efforts, including by still doing some coding, but am mostly managing other engineers and focusing on the broader technical needs of the company. Previously, I was a technical lead and IC at startups where I had led small teams of other software engineers on product development, but was more in the weeds technically/coding a lot and was not responsible for people management. I'd like to learn about resources I can utilize to further develop my engineering leadership and people management skills. What resources would you recommend to learn more about the following: How to build people management skills as a first time engineering people manager? Are there open source or free trainings or resources that are good for this? The latest engineering leadership topics, especially in a startup environment (e.g. how other leaders are tackling common technical and leadership challenges) How to meet or connect with other engineering managers/leaders (e.g. startup CTOs, VP of engineering, or technical founders) outside my company to learn from their experiences or share lessons or knowledge with each other Interested in any types of resources including blogs, podcasts, YouTube channels, or virtual or in-person communities or meetups (particularly in NYC) etc. I have some favorite resources so far, but it would be great to learn about what resources others in the Taro community find useful. Thanks!

311 Views
1 Comment
Senior Software Engineer at Series C Startup profile pic
Senior Software Engineer at Series C StartupPosted April 15, 2023

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

Context:- 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. 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. 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. 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. 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. The plans for the previous attempts only had internal milestones for the team and a single big-bang completion milestone for stakeholders. Questions:- How can I identify smaller, independent high-level milestones that are relevant for external stakeholders? 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? How can I think about de-risking this attempt of the project and improving the probability of success?

269 Views
2 Comments
Staff Software Engineer at Taro Community profile pic
Staff Software Engineer at Taro CommunityPosted January 20, 2024

Feeling stuck because of the unwanted office politics.

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.

266 Views
4 Comments
Anonymous User at Taro Community profile pic
Anonymous User at Taro CommunityPosted December 22, 2022

How to manage politics from more senior engineering folks?

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.

248 Views
2 Comments
Senior DevOps Engineer at Taro Community profile pic
Senior DevOps Engineer at Taro CommunityPosted November 20, 2023

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

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.

208 Views
2 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