Have you recently been promoted to an engineering leadership role? First of all, congratulations! There is an amazing professional journey ahead of you, very different from what you’ve been doing as a software engineer/individual contributor.
But the beginning will be challenging, which is no surprise. You will likely continue doing your engineering tasks as usual. You will also have a team of engineers and own a piece of the technology behind your company’s product.
Soon, someone from your team will ask you for a raise or promotion. On the contrary, someone from management will ask you why things take so long and why your engineers don’t seem busy enough.
Everyone (your manager(s) + your direct reports) will ask you, “What’s the long-term plan?” And why are there so many production issues here and now?
So, you came here to get some advice about how you should drive your career and become an impactful leader. You found almost 100 paywalled articles. But you don’t want to pay, at least not for now, because you don’t even have time to read everything, not to mention implementing these ideas in your work.
Engineering Leadership 101
Indeed, the entire archive of Practical Engineering Management is behind the paywall. I spend long hours or days almost every week preparing food for thought, actionable tips, or frameworks to help you become an influential software engineering leader and multiply your impact and earnings.
But I also understand that at the beginning of your journey, you don’t necessarily need to dive deep into all of them at once—expectations management, strategic planning, transforming into a DevOps culture, building high-performing teams, or making them data-driven.
You just need to scratch the surface and, once the time is right, explore each of them much deeper. For people like you, early adepts of engineering leadership, I’ve been running the Practical Engineering Management Blog. The content there is not as detailed and actionable as regular newsletter issues. But it can be a perfect introduction to leadership subjects. And it’s always free for everyone, with references to premium articles if you decide to explore some of these concepts in detail.
Let me walk you through the recommended materials:
Engineering Leadership: Tools and Techniques for Successful Leaders
Firstly, I want you to build your basic toolbox as an engineering leader. There are a few techniques and tools that are critical for everyone who is managing software development teams. There are no shortcuts here, and I firmly believe you must build a strong base in:
Running 1:1 sessions with your teammates to build professional relationships, strengthen feedback loops, and focus on helping them become more successful. Their success is your success.
Bringing data into your work so you start transforming into an outcome-oriented team where facts are more important than opinions.
Leveraging different research and frameworks to know what good looks like and how to improve the team’s productivity and well-being.
Getting your technical debt under control.
To explore these aspects of leadership, read here:
Engineering Leadership: Tools and Techniques
Build a Team of Missionaries, Not Mercenaries
The main theme driving Practical Engineering Management is that the role of technology in a product company is to solve customers’ problems. Your team is there not merely to accomplish tasks from PMs but to build features and products for people.
Taking responsibility for outcomes rather than assigned tasks is a very challenging job for an engineering leader. But this is how the most successful product companies operate today - their engineers don’t work for the product organization. They are the product organization.
Here are a few examples of how you can build such a culture within your team:
Build a team of missionaries, not mercenaries
How to Be a Better Software Engineering Leader
Now, something about your true role as an engineering leader. I truly believe that first-level engineering leaders (Team Leads, Tech Leads, Engineering Managers) are some of the most important people in the company.
Their challenging job is to blend hands-on experience with strategic thinking. They combine knowledge about products, business, and technology. They translate long-term objectives into day-to-day tasks. No one is closer to the customers. They have the power to deliver features directly to them. The organization’s success depends very directly on these first-level people managers.
But there is a considerable gap between bad managers - who micromanage, don’t contribute to product discovery, and are gatekeepers; and good managers - who manage talent, expectations, impact, product, and technology.
In short - your job is to compound the impact you have. How?
Have a look here:
How to Be a Better Software Engineering Leader
How to Lead a Team of Senior Engineers
The longer you are an engineering leader, the more your software engineering skills shrink. At the same time, you invest in your teammates’ growth. And it all leads to an engineering manager’s nightmare - “they know more than me”.
Managing people who are more senior than you in software engineering is a tough challenge, but each of us will face it sooner or later. That’s why we must learn how to manage engineers differently than just telling them what to do and making all technical decisions for them.
How to do that? As food for thought, I’m bringing four techniques that can help you with that:
Managing through expectations
Managing through problems, not solutions
Managing through purpose
Managing through principles
Read more about each of them here:
How to lead a team of senior engineers
Different Styles of Engineering Leadership
When learning how to be a good leader, you may feel that you have only two options: You either micromanage or you are a servant leader who gives your team full freedom of work.
The reality is much more nuanced. There are multiple approaches to managing people, and usually, it’s not “this way vs. that way” but rather a spectrum of choices that strongly depend on the team's and organization's current situation.
Transactional Leadership, Center-Out Leadership, Top-Down Leadership, or Developmental Leadership are only a few examples you can mix in your style. You can also take inspiration from the latest scientific research, like the Polyvagal Theory and Neuroception.
To find what works best for you, take a look here:
Different Styles of Engineering Leadership
How to Build Collective Intelligence and Empower Decision-Making
It’s much harder to lead through empowerment than command and control. Delegating problems means no less work for you but the opposite. As a leader, you must constantly provide all needed context, mentor your people, facilitate, set boundaries, and share knowledge.
However, as the company grows and the product gets more complex, you cannot be the only one making all of the decisions within the team and be the primary source of knowledge for everyone. Your job is to spread this responsibility to all teammates to reduce the risks of one-person dependencies and support autonomy in decision-making.
You can achieve all of this by building foundations for collective intelligence, where knowledge is persisted and shared openly with all of the company's people. The tools used here aren’t new—ADRs or RFCs have been part of software engineering practices for decades now.
In this article, you will find more about how to use them as well as a few other techniques to support knowledge sharing and collective intelligence:
How to Build Collective Intelligence and Empower Decision-Making
How to Build Engineering Strategy
Good leaders have a plan. When you only focus on the execution of tasks and requirements coming from PMs, it’s not a plan. Even though they state things are according to the plan (i.e., product roadmap), all you do as an engineering leader is improvisation. Tasks come in and come out. You may hope that some of these tasks will address technical debt challenges or use your team’s strengths as compounding opportunities. But in most cases, it’s not true.
You know your team the best. You know their strengths, preferences, and weaknesses. You also know the technology your team owns. You know the biggest pain points and critical things that require immediate focus.
Putting your strengths against weaknesses, or using them as leveraging opportunities, is a strategy. And there are more concepts here - a weak link in a chain, proximate objectives, or using the wave of change.
If you want to become a strategist and use all of these tools consciously, I recommend starting your reading here: How to Build Engineering Strategy.
Building a strategy is not simple, and this article just scratches the surface. But it should be enough to raise your awareness of this subject so you can continue exploring it on your own.
End Words
Is this all? It’s a good starter for everyone who wants to build a successful career as a software engineering leader. But in some cases, it’s just the peak of the iceberg.
This is why Practical Engineering Management came to light. I want to support you at all stages of your profession as an Engineering Manager, Team Leader, and mid-level manager (Director, Head of…).
In the archives here, you can find almost 100 articles that will support you on this journey. Many of them also have dedicated materials, like 1-page cheat sheets, FigJam whiteboards, and templates for Notion, Google Sheets, Markdown, and others. Premium subscribers can access them here: 🗃️ Files & Templates.
My mission is to make great ideas happen through empowered engineering leadership. I want to support leaders all over the world with their challenges.
Thank you for reading, and as always, don’t hesitate to reach out to me if there are any things you would like to discuss in software engineering leadership and beyond.
Thanks for sharing this Mirek!