by Dalia Simons
If you want to become a tech leader, follow this advice
Over the past two years since I became a Tech Lead at Wix, I’ve come across questions on how I got this role. I must be honest and say that I wasn’t actively looking for it, but looking back I would like to share a few tips for developers who want to become Tech Lead.
I think the role of tech lead is hard to define and differs between people.
For me it’s mainly about mentoring: helping the engineers on the team improve. This means helping them with their design, code reviewing, and teaching them the best way to communicate with other teams and make an impression.
When I started in the industry, the only career path I knew was management. Today it’s already clear that management is a different role than it used to be, and you can also advance by becoming a Tech Lead or an Architect.
I think the keys to becoming a good tech lead is asking questions and expanding your knowledge while being friendly and socially aware. Here are my top tips:
Really understand what you’re working on.
Fully understand the product requirements, the design of your system and the different technologies you use. Even if you weren’t part of the decision making, ask the questions: why were specific technologies chosen? Why was this design preferred?
Know all parts of the system, including the parts other people are working on. You don’t need to read every commit done. But you do need to know what your peers are working on and what their part of the system does.
Say what’s on your mind.
It’s harder for shy people to learn and become leaders. You have to always sit at the table at meetings and make your opinion heard. Try and be involved in conversations.
Challenge decisions made by other people, and don’t be afraid to ask architects or tech leads why they made a specific choice. Successful people welcome the debate and are always happy to explain their choices.
Technical people can and should challenge product decisions. You should always have the customers in mind and make sure that what you’re working on gives them value.
When you see something wrong — get it fixed.
Don’t stand by when you think a mistake is being made. Politely inform the person in charge and ask what they think about it. You might find that you are wrong, but a lot of times you will help fix a problem. If the responsible person doesn’t have the time to fix it, you can offer to contribute your time. This way you can learn another area of the code and you will be appreciated for being a team player.
I had a few times where I integrated with other projects and didn’t think their design was right. I told them I didn’t fully understand why they chose this design and asked them to explain it to me. Most times it made sense after they explained, because I wasn’t fully aware of all the limitations and concerns. However, a few times I managed to help by highlighting concerns they weren’t aware of.
Even if your concern is wrong it’s good to raise it: You will get better at understanding design and concerns and your opinions will be valued.
Volunteer for extra work when you can.
Every once in a while an opportunity will come to volunteer for some side project or some other task. Be the person that volunteers, even if you’re not sure you can do the task. This is the way to grow, you will learn your missing capabilities and maybe get the opportunity to work with people you don’t know yet.
A few examples we have at Wix:
- Be in charge of weekly lectures organized for the backend engineers,
- Make sure Post mortems are created and shared for production issues,
- GDPR integration across the company.
I personally volunteered to help engineers that write talks for conferences, as it gave me the opportunity to work with different engineers I don’t usually interact with.
Invest in making connections.
Some people refer to coffee breaks as a waste of time, but I think they are crucial. When you meet people and create a social connection you create a relationship that will help you in the future.
As human beings, we’re much happier to help our friends. The more friends and connections you have, the faster you can get help when you need it. This helps integration projects go more smoothly if you know the people you’re integrating with.
This is also a great opportunity to step into conversations other developers are having about their design. You might hear about new opportunities that can advance your career. The more people know you, the more opportunities you will get.
Last week I overheard a conversation by engineers I didn’t know and realised that they are unaware of a product I was working on. So I joined in politely and was able to save them lot’s of time while make new connections.
Opportunities will come your way, either inside your company or from companies that wish to hire you.
When a good opportunity comes by you should grab it. Don’t let your imposter syndrome deny you a great advancement. You have to believe that if you were offered the chance — you can make it. There might be a learning curve but learning new skills is how we grow.
If you hear of a good opportunity you like and weren’t offered, ask if you can have it. You might get a negative answer, but there is always a chance you will get a positive one.
My first position as a tech lead was offered to me by a project that was going through a big rewrite and thought I could help. It was a big job but I seized this opportunity. I opened many doors for me for other tech lead roles in the company.
Becoming a leader is about taking initiative and showing your peers and your managers your capabilities.
Becoming a Tech leader involves all of the above and having a deep understanding of technology and design.
If you play the part of a tech leader in your current role you will become one. Believe in yourself and your capabilities and you’ll succeed.
You’re welcome to follow me on twitter :) Thank you for reading!