The Roadmap of a Lead Software Engineer | by Bohdan Balov | Jan, 2022

Experience and knowledge you need to gain to become a lead software engineer

Bohdan Balov
Lead Software Engineer Roadmap
Image by Markus Spiske on Unsplash

How to start planning the movee to the Lead Engineer title? Firstly, you need to be a Senior Software Engineer with approximately 2 or 3 years of experience. This means you are a seasoned engineer who tackles complex tasks and supports a small group of teammates (1…3 devs).

As for me, these are the most important skills required for a regular software engineer. I don’t want to underestimate the importance of soft skills. But the main thing developer should do is to produce high-quality code that turns into an app that gives value to folks.

Programming Paradigms

Object-Oriented Programming. You should be a pro on this topic. And it is not only about OOP principles. There are a lot more items you should cover:

  • Lambda calculus
  • Different types of polymorphism
  • Laziness vs Eagleness
  • Parallel computing

Communication Protocols

Not much to say here. There is a set of topics that you need to know and practice.

Security

As a Lead Software Engineer, you are responsible for developing a secure app. There are a lot of topics you need to be experienced in. Let’s explore the main ones.

  • Security audit
  • Security headers
  • Security techniques related to your tech stack

Authentication

This article will give you some understanding of this topic. Then you can use this information to deepen knowledge. Here may be a lot of framework-specific knowledge. For this reason, I’m not going to elaborate more on this topic.

Performance

That’s a wrong idea to develop a highly performant app in the early stages. You may ask, why? Emm… At least because the time to market is a more priority thing at this step. But when your app becomes more mature, and it gives revenue, you need to care about performance.

Frameworks

As a Lead Software Engineer, you should be able to choose the right tooling. Eg, what to choose: React, Angular or Vue? Or anything else? This is an important point of implementing an app as it may speed up or slow down the dev process.

  • Learning curve
  • Built-in features
  • Scalability
  • Performance
  • and so forth…

Architecture

It’s a huge block. And it’s impossible to fit all the valuable information in several sentences. I will give you the most important points that will help you to start this fun journey.

Testing

It’s impossible to deliver a quality product w/o quality assurance. Lead Engineer should take part in setting up a testing strategy. So, the following topics are worth looking at — even if you don’t plan to dive deep into the QA field.

  • Testing principles (eg, FIRST and AAA)
  • Testing practices (eg, TDD, BDD)
  • Unit & integration testing
  • System & acceptance testing
  • Manual testing

Quality

This block is a continuation of the previous one. As a Lead Engineer, you need to enforce your team to develop quality code. You need to know techniques and tools for how to do it.

  • Static code analyses (Sonar, linters)
  • Refactoring and Tech Debt
  • Code review

CI/CD

Les’s start from the following basic topics:

  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

This section is what makes the real difference between Senior and Lead Engineers.

  • Requested discussing features with business
  • provide devs with tasks
  • consult devs during the dev process
  • and so on…

SDLC

It stands for “Software Development Life Cycle”. As a Lead Software Engineer, you will be taking part in setting up the development process. For this reason, you need to know what SDLC is.

  • Agile
  • Scrum
  • Kanban
  • Lean
  • DoR & DoD

Work Planning

Lest’s start from estimation techniques:

  • T-Shirt Estimation
  • Planning Bucker
  • PERT
  • Bottom-up & Top-bottom Estimation
  • Motivation
  • Time management
  • Onboarding
  • Conflicts solving
  • Employee’s performance management

Leave a Comment