How to become a Lead Software Engineer

Andrea Angella
Ingeniously Simple
Published in
6 min readAug 4, 2021

This article is a collection of resources, advice, and experience to help you reach the Lead Software Engineer level in Redgate Software (also called Staff Engineer in other companies).

The Progression Framework

Redgate has recently introduced the progression framework to help people develop their careers at Redgate.

This picture describes in a nutshell how I progressed from Graduate Software Engineer to the Lead Software Engineer role. It took me about 6 years to reach a senior developer level and a further 5 to get my first engineering leadership position.

I am pretty sure there are many engineers who are smarter than me and can do this path a lot quicker. However, it’s important to say that developing skills takes time and you need to be patient with yourself.

My hope is that this article can help you to speed up your journey.

Do you want to be a Lead Software Engineer?

A Lead Software Engineer is responsible to improve how Redgate builds and maintains software, alongside actively contributing to product development.

The three key responsibilities are:

  • Strengthen leadership in the teams
  • Accelerate Redgate’s technical excellence
  • Development of engineering skills within the team

The first and most important question you need to ask yourself is if you want to become a Lead Software Engineer.

You need to decide if you want to remain a Senior Engineer, become a Tech Lead, or become a Lead Engineer. I had to have a lot of coaching and a lot of discussions with my manager to actually understand what I wanted to do.

It’s not a question that you might be able to answer yourself.

I invite you to talk with your manager and the coaches, talk with other Lead Software Engineers to make your own decision.

Once you decide, make sure to inform all your team and make it clear to the entire business that this is the role you actually want.

Be open to a big change!

What a Lead Software Engineer is not

A Lead Software Engineer is not a more productive Senior Engineer. It’s not the mystical 10X software developer.

You don’t have to do more engineering things to become a Lead Engineer.

This is a big mistake that I have made.

I spent considerable effort volunteering for every possible engineering task. I was doing a lot and I was even keeping track of it and making sure to inform my engineering manager of everything I was doing. I was focused on doing the work and getting the credits with the hope of demonstrating enough skills to be promoted.

I was overwhelmed and a bit burnout and I was doing it wrong!

What Got You Here, Won’t Get You There

When you start thinking about the lead engineer role, you need to do a big mental shift.

You need to start thinking about what you should stop doing, what you should do differently, what you should start doing, and what you should focus on.

You need to stop thinking about output and think more about the impact of your actions.

It would help if you step down from initiatives that aren’t likely to have a significant impact.

This is hard because as engineers, we love doing things. We love the feeling of contribution. We love feeling recognized. We love to solve problems.

The mental shift is understanding that you don’t have to be the person doing the things to have an impact.

The goal is to have an impact, not necessarily to do the work!

Not doing the work means that you give others the opportunity to own and lead. You are there to support them grow!

Delegation and mentoring become essential skills to master at this level.

I recommend the following books to learn more:

Mentoring

A great way to increase your impact is by mentoring other engineers.

Also, find a mentor!

I always had a mentor at any stage of my career and it helped me tremendously to develop and grow.

A Software Architect is currently mentoring me and I am mentoring a Software Engineer in a different team. I also mentored mentors to expand the radius of my impact on the organization.

The following books can help you to learn more about mentoring:

Intent-Based Leadership

I believe a Lead Engineer is responsible for fostering a culture of leadership at all levels.

Lead Engineers have a greater contextual awareness of the skills level in the team. They are uniquely positioned together with Tech Leads to provide opportunities to other members of the team.

I recommend Turn the Ship Around and Leadership Is Language as two must-read books on the topic.

Learn about Management

Even if you don’t have line management responsibilities as a Lead Software Engineer, I still recommend you to learn more about management.

In the past, I have been a manager of two test engineers and that experience really helped me to practice my management skills and attend management training.

Learn about Situational Leadership, Coaching, Giving Feedback, and the Five Dysfunctions and continue to develop your listening and communication skills. You are going to need them in your new leadership role.

Develop a Business Mindset

As a Lead Software Engineer, you will interact with people in different functions on a more regular basis.

Get yourself out of the engineering bubble and learn more about marketing, sales, product design, management, and business in general.

I guarantee you will work more effectively with non-technical stakeholders.

Finally, don’t forget the most important stakeholders: your customers!

Customers are the business.

You need to learn how to talk with customers and learn from them.

Act like a Lead Software Engineer

Ultimately, even if you don’t have the role, don’t let anyone stop you from acting like one. Introduce a new tool or a new process. Start new experiments, volunteer to lead a community of practice.

It’s also an excellent idea to deputize for your Lead Software Engineer or Tech Lead when they are going on holiday or sabbatical.

Interview Tips

So let’s pretend you accumulated enough experience and are ready to apply for a Lead Software Engineer role. These are my tips to increase your success in getting the position.

First of all, be concise when you apply for the position. List the few most impactful contributions you have made and why you are interested in the role.

Quality over quantity matters here.

Secondly, learn more about system design and architecture. The books Building Microservices, Building Evolutionary Architectures, and the SystemsExpert course are good resources.

It’s also crucial to familiarize yourself with the divisional objectives and key results. Learn about your company goals and keep them in mind at all times during your interview.

The Staff Engineer book and the related podcast are also great resources to better understand the role of a Lead Software Engineer in other organizations.

What are you going to do next?

Becoming a Lead Software Engineer doesn’t happen overnight.

Be patient and continue developing your skills as a software engineer and expanding your interests in the business, leadership, and other functions.

Strengthen your architectural skills, understand the commercial impact of your software decisions, and gradually step away from the low-level details of the code. You can rely on capable engineers in your team to work on the critical path and get things done.

Mentor and be mentored. Focus on impact rather than the outcome. Master delegation and lead by example, fostering a true intent-based leadership culture.

Have a chat with your manager and get a personal development plan together.

I wish you the best of luck in the never-ending journey of engineering leadership.

--

--

Andrea Angella
Ingeniously Simple

Tech Lead (Manager) at Redgate and Microsoft MVP on C# and .NET