5 Things that separate Tech Leads from Senior Software Engineers

Georgios Lionas
5 min readAug 22, 2021

--

Photo by Jo Szczepanska on Unsplash

After one year in my current company in the Fintech Industry, I was able to climb the corporate ladder and I was promoted as a Tech Lead in the newly formed team Data-Interfaces. After the announcement, I was really happy since I had worked really hard for this position.

After being promoted, I started thinking about what separates the work of a Senior Software Engineer and that of a Tech Lead and here are 5 things that helped me get the promotion:

Be a Knowledge-Machine

As a Senior Software Engineer, you have to be the go-to point for juniors. As a Tech Lead, you have to actively engage your team and enrich them with knowledge.

In my case, I held a presentation at least once per month about different topics, like DDD, Docker and Reactive Programming. It is important that a Tech Lead has a broad understanding of various topics in order to provide the team with alternatives, advanced concepts and talk about pro’s and con’s of the different concepts.

You should also try to learn something new every day. It does not to have revolve around technology. This will amplify your overall knowledge extremely and you will also be able to project your knowledge on different contexts.

Write Abstractions and Infrastructure, not Implementations

Photo by Troy Mortier on Unsplash

In order to have a large impact on the product of your company, you’ll have to increase your throughput OR the throughput of your team!

Let’s analyze this a little bit. There are three alternatives:

  1. Increase throughput
  2. Work more
  3. Leverage through abstractions

In my case, I leveraged heavily! What I mean is, I concentrated on writing abstract concepts and infrastructure which I documented extensively. Then I provided these clear concepts with the corresponding documentation to my colleagues and this increased the throughput of our team dramatically. The team now didn’t have to care about the special cases and the whole infrastructure layer. They just had to write use-cases, which is a higher layer and much more easier to grasp, if the core is documented orderly. By doing this, we had a specific process in our thoughts while talking, and this communication clearness, enabled us to generate new ideas with the newly created concepts. Awesome!

But be careful! Warren Buffet said once about Charlie Munger:

“My partner Charlie says there is only three ways a smart person can go broke: liquor, ladies and leverage,” he said. “Now the truth is — the first two he just added because they started with L — it’s leverage.”

If you leverage, it means that a lot depends on your code. You’ll have to write clean and extensible code and think about all the edge cases. If something goes southwards, you’ll have to take the responsibility.

Be direct, be clear, be trustworthy

As a tech lead, you should save your and everyone else’s time by communicating exceptional. What I have found out is that more meeting-time does not mean more information. Everytime I feel that I do not belong in a “jour-fix”, a “daily” or in general a meeting, I try to decline respectfully.

I also blocked a great time of my daily work time, in order for me to be in the zone. Every request and meeting has to be in the specified time frame I chose to be available. It is a concious decision. I know that my productivity drops, if someone interrupts my work-flow. And you know it too. Take that decision and watch your productivity grow extensively!

Last, when I say something, I mean it. My colleagues do not have to make deductive analysis in order to understand what I say. I say everything loud and clear. And they know it is true without a doubt. This increases your trustworthiness. I also try to set realistic goals. When I accept a feature request, I will try my best to hold the deadline, and if after some time I change my mind because of some weird use-case, I communicate it as soon as possible. Be that straight-forward trustworthy person!

Enable Business Ideas and Growth Potential

Photo by Ameen Fahmy on Unsplash

As a Tech Lead, you have a huge responsibility. Because you have such a great insight of the product you are developing, you also know where the pain points are and where a lot of work needs to be done.

There are different practices that you can use in order to capitalize on this situation:

  1. Identify slow or bad features and refactor them. This has a direct impact on the user experience and the overall value of the product.
  2. Generalize concepts and provide a common infrastructure. Enhance this infrastructure and try to make the Api as simple as possible. This can lead to an advanced understanding of the domain and to an extensible architecture that scales with business requirements.
  3. Combine concepts and create value. As a Tech Lead, you should identify correlations and synergies between features and code-blocks and try to merge simple concepts for greater insights. This can create business value and even lead to a new business idea.

Have good Relations with your Team

You’ll have to work with your team every day. It is crucial that you get along with your team in order to work productively and without trust issues.

Make regular feedback rounds with your team in order to understand their view of the world. Try to empathize with them and provide them with good feedback. Your team members want to grow and you have the responsibility to make it happen.

Also try to provide an open discussion room with your teammates, where they can discuss ideas and issues.

So there you have it, these are the differences between a Tech Lead and a Senior Software Engineer.

This article is based on my personal experience as a Tech Lead.

I hope you found this article useful.

--

--

Georgios Lionas

Senior Software Engineer, Working @ Fintech, Based in Munich