Being a tech lead is a bigger career step than many think. So if you’re going to do it right, you should think about your motivations for jumping in.
In the role, there are going to be ups and downs. Some days you are going to be blown away by how creative, forward thinking, and generally awesome your team is. "Hey this tech lead thing is hardly work at all," you may say.
On other days, it’s going to be incredibly frustrating to get people to understand your technical vision, let alone execute on it:
- Engineers all have their own preferences and experiences, so many will challenge or even resist your vision.
- Even if they accept your vision, engineers don’t always implement it the way you thought you clearly explained.
- Sometimes they do weird things like adding inexplicable dependencies ("Why on earth do they need that whole library for one little function?" you might wonder.)
- And there are as many other reasons as there are people on earth for why it may be frustrating!
As a tech lead, you can’t code your way around those problems. You're going to have to dive into some of the people aspects of engineering. So, I want you to think about whether you want to put yourself on this human roller coaster.
Do You Really Want to be a Tech Lead?
Be honest with yourself: do you really want to do it? After all, writing code as an individual contributor is a perfectly rewarding and endlessly interesting career. You may be wondering if you should take the plunge.
To answer the question, it may help if you take a moment to consider your motivations and intentions for the role. Why do you think you may want to be a tech lead?
You could be considering the role for extrinsic reasons, such as:
- wanting to show career progress on your LinkedIn profile,
- making more money (I have bad news on that, by the way),
- wanting people to think you're important because you have the word "lead" in your title,
- and, my personal favorite, because you think you have a better technical approach than your current tech lead.
If you answered in any of these ways, then the frustrations I mentioned above may end up driving you mad and may make you regret your decision.
If, however, you are at a point in your career where you want to have a bigger impact than you can have individually, then you might be on to a better answer to the question. Some better reasons include:
- You’ve hit a point in your career where you aren’t growing enough with mere technical challenges.
- You know you want to grow both personally and professionally, and you suspect working as a lead will help you do that.
- You’re excited for any kind of new challenge, not just purely technical challenges.
If these answers seem to speak to you, then those "frustrations" I mentioned above won't actually be frustrations. They're actually very interesting problems and opportunities to learn about both management and leadership.
In fact, if these are your answers, you may learn to love the tech lead role.
What do you think? What were your reasons for getting into the role? If you're not in it, what are your thoughts about it?
PS - this material was adopted from my free book, How To Be A Tech Lead, currently available only on Leanpub. I also organize the community based Tech Lead Coaching Network where tech leads help each other :-)
Top comments (26)
Tech lead was always my career goal...my reasoning was that I wanted to make more of a difference than I could as an individual developer. Meaning is something that is crucial to me...as someone who battles with extreme depression throughout the majority of his life, I am almost 100% certain I would have taken my own life by now if I didn't have software development as a challenge and a way to connect with people. On top of that, it paid enough that I could afford top-notch treatment for my condition and let me live a mostly productive life despite my mental disabilities.
I suppose I wanted to become a team lead to pass on the torch and help others become passionate about technology. I've tried to find meaning in my life in a lot of ways, many of them radical - like dropping out of college to become an EMT (didn't work out so well, major respect to everyone out there doing that job) but everything always draws me back to technology.
Next week I become a team lead at one of my previous employers. I have no idea what it's going to look like...from my understanding so far, a lot of the previous team either left or was promoted elsewhere and my boss trusts me enough to build a good team. I'm honored and terrified at the same time. I have a lot of learning to do, but I have had so many terrible supervisors and toxic management in the past that I have a pretty solid idea of what NOT to do, and I am hoping to grow from there.
Your book is on my reading list for this week, thank you!
Scott, this is an amazing story. Thanks so much for sharing. Please do reach out to me 1:1 to see if I can be of any help while you do this. Trying to build a whole tech lead community to back you up.
Your story reminds me of mine a bit, and I'm sure many others. Later this week I'm going to post something about how big a transition the tech lead step is, but I'm with you.
Writing software, as an individual contributor, is, all by itself, a great opportunity. But at some point lot of us want to reach further. Being a tech lead is usually the first onramp.
When I first reached for it, I was pretty mediocre because of many factors, confusing motivations being one of them. My work these days is to try to make it better.
Seriously reach out to me 1:1. Hopefully I can help!!!
When I was a tech lead I loved it. One important point about being a tech lead, you have to be a jack of all trades which requires alot of experience and knowledge. You being a good developer who knows a language really well will not do it. You have to be able to talk with all the other tech teams. You have to be able to see and understand the big picture.
Very well put, Kyle.
I've been struggling in my first years on this role and tried to learn from everything I could get my hands on.
It wasn't until I identified five main areas where I should focus: Leadership, Communication, Project management, Business thinking and analysis, System design and architecture and finally Software Engineering.
Notice how Software Engineering is the last in the list?.. That's because it's least helpful at being a good Tech Lead. It's expected that you are a good Software Engineer by that point, but it's not going to help you succeed as a Tech Lead. Took me a while to realize, though.
Anyways, after I identified those areas I then tried to find the best resources to improve each of the areas on my own.
Many books, articles and courses later I compiled a list of the most valuable and influential ones and kept returning to it when I felt I need to get better.
I shared it with a couple of friends over time and they found it useful, so I published it on a separate web page: techleadcompass.com/
Hope somebody finds it useful, too!
It's a crazy role, huh, Kyle? Having been a manager putting people in tech lead roles as well as being a tech lead myself many times, it's a very fluid role.
Tell us more about what you loved about it? For me, my first experiences were, well, different.... Can't say I loved it!
Later, when I got to see incredible tech leads in action, I learned what worked...
I just loved being the guy in charge and responsible of putting the lego pieces together. I was a tech. lead for a city government. Every project was a big systems integration project. System A had to talk to System B, System B had to send data to System C in a weird format so that it could process it, so on and so on. A lot of responsibility is on you to make sure everything goes well.
Agreed. So how did you do it? Just stay really close to the team (I call it a tracking and adjusting behavior)? Or did you spend a lot of time upfront to define the vision (another one of the behaviors I outline in the book)? Both? Neither?
Staying really close to the teams.
Nice article, on point!
On my actual company, I'm the Back-End Team Leader and I've been the Tech Lead in a few projects. Some days I miss being just a developer, but other days I really like being the Team Leader / Tech Lead, specially when this happens: "Some days you are going to be blown away by how creative, forward thinking, and generally awesome your team is."
Thanks Luis!!! Glad you liked that point. Felt like I was putting myself out there a bit because I haven't heard other people say that too often.
Right now, I get to write a lot of code again, and in some ways it brings a different kind of satisfaction for me. You write the code, the tests turn green, and it feels like you actually did something.
On the other hand, the short term feedback loop isn't really there with people. Sometimes you have a hard conversation, and you get through it, but you don't see the results in terms of the project, the team, or the product for a while. It's so much more ambiguous than a green check mark on a unit test, which is kind of why I wrote the post.
I love being a tech lead. With any leadership position it comes with its ups and downs, but being able to help grow your team is an unbelievably rewarding experience.
You don't need to have a "lead" title in order to help people grow, however. In fact, there are plenty of leads out there that don't do that. Leading is about influencing people, and influence does not come with a title.
I will say that being given a position of authority in a company definitely helps, but it's not the end-all-be-all. That being said, I 100% agree with you Michael on the motivation factors for becoming a tech lead. Do it for the people, not for you.
💯 Allen!! So. Many. Great. Points!
Glad you're finding it rewarding. For me, I found it really hard when I started. I was a terribly mediocre tech lead until I started to figure out that the people piece of it was truly its own discipline to figure out (sounds absurd to say that, in retrospect!).
Also, totally agree that you don't need a formal tech "lead" title. Think you would agree that I feel like most tech leads are informally in the role or only in the role for a fleeting project.
Thanks again Allen!
I've been in a managerial position. It's endlessly torturous and comes with a set of problems that cannot be solved in the same manner you would a technical problem. Why on earth would someone want to take on solving human problems AND technical challenges is unimaginable to me. I became a software engineer precisely to be an individual contributor, there is no way I'm giving up the primary benefit to make a little more money, it sounds like an entirely selfless position.
Haha thanks Eugene 🤣 - I probably had similar experiences to you in the beginning too - that's why early in my career I bounced between tech lead and individual contributor (IC) roles quite a bit. Eventually I got to be "ok" in the role.
It wasn't until later, when I was managing other tech leads that I had the opportunity to learn to do it better.
Learning from them and reflecting on my own experiences, my hypothesis is that it's very possible to do both and do it successfully. But that doesn't mean EVERYONE SHOULD by any means!!
Thanks for sharing that point of view though. Absolutely valid and I'm glad you found a role you're happy with!!
I'm about to change jobs to become a tech lead for the first time in a couple of weeks, so it was interesting to read your timely article on this.
Fortunately my motivations are mostly in the second lot. I'm particularly excited about some new "not just technical challenges". Hopefully it goes well.
Your book looks helpful! Thanks.
Thanks Douglas! Relieved to hear that you identify with what I think are the right motivations. I think they'll pull you through the rough patches.
Please feel free to reach out to me if you hit a hard patch!
I briefly mentioned in the post that this is a bigger transition in our individual careers that people talk about so want to be able to help you out if you need it!!!
Great article Michael, some great food for thought for anybody looking to move into a tech lead role. Even for those in one now. Evaluating the "why" of wanting something I think is hugely important and something I've wrestled with throughout my time as a software developer.
The why question is a theme that comes up for a lot of the stuff I talk about, but sometimes we risk turning into a Whyer (not a whiner or a winer, but a whyer).
I think once you've settle the why question, then it's time to EXECUTE!
Of course, once you start executing, makes sense to keep recalibrating to make you what you're getting in your execution continues to align with your WHY but then KEEP EXECUTING!
Thanks again for the thoughtful comment Jason!
I'm a chemical engineering student but I'm really curious in studying technology. Maybe it's one of my goals. I'm chemical engineering student so that I have really limited knowledge about codes. What can you suggest to start to study about programming? My main desire is to program machines.
Thanks for the reply! Shoot... if you're still a student, I'd say spend some time to explore lots of different technologies, languages, applications. Programming is a huge world and there's something interesting about almost every aspect of it. Find the one you like most!! Good luck :-)
I can't really say I was seeking or wanting to be a tech lead but it is happening. I'm leading the software testing side and historically every thing was run loan wolf.
I agree with all your points. And it just occurred to me just how important it is I use a platform like this to create exposure to my thoughts outside the office.
Thanks for the post, Michael!
Indeed, too many people don't think about this (I certainly didn't! But was lucky to have made the right choice).
I think it's the culture of "success" to blame. All while for many people staying on a Individual Contributor track indefinitely could be the only thing that actually makes them happy.
For me I wasn't necessarily aiming to became tech lead from the beginning, but it happened because of staying at the same company for a very, very long time, and their development team and IT department is a very small team. Other developers came and went. I have always been very determined to continually grow as a developer. But when you stay at the same place long enough, you keep learning more and more about the big picture of the company, and it is only natural to develop a greater and greater interest in the way you would like to see things change. So my managers kept giving me more and more responsibility, until all the other developers ended up quiting in a single month. Then I started recommending people to hire, so the company hired them and told me it was my team. Since then it has been a crazy ride get them trained, and figure out how to pick up the pieces the other developers left. So much technical debt had built up over the years that all we have time for is just to clean it up. It turned out one of our apps was not even getting its' repository committed to regularly, and they did a full release to the Play Store without even leaving a commit of that code! We have been working like crazy just to get it into a releasable and relatively unbuggy state, but we are finally almost ready for a release. I know it will be the best release the app has had in a long time, with a ton of bug fixes, speed improvements, and under the hood refactorings.
I am really happy to be seeing this article and discussion, I googled about becoming a great tech lead cause I am discussing with a company who really wants me to become their engineering lead after working with a team of 4developers in building their MVP. I believe Michael's ebook might just be the right answer, please I need as much advise as I can get.
Nice work Michael, the first two links when I searched on google one actually directed me to this post the second to your ebook on Leanpub which I have downloaded before realizing the author of the ebook also made this post.
One thing that made me do the googling in the first instance was watching Simo Sinek video about how leadership sucks in most companies cause a lot of people who are supposedly good at doing their jobs are promoted to become leaders without actually being taught how to lead youtu.be/o9uzJ0LgvT0
This is an awesome article there are times that I want to become a tech lead in the future if I were to consider in jumping towards it.
Awesome Max. Being a tech lead is awesome. In most cases you get to stay an individual contributor if you don't want to go the full people manager route; or, if you do, it sets you up nicely for it.
That said, someone in your organization may informally "tap" you to be a tech lead. It might feel kind of easy, informal, and you might miss that it's actually a big moment in your career. I'll be posting some more about that transition soon.
Good luck to you buddy!