Become a Great Engineering Leader in 12 Months
🎁 150+ Learning Sources Organized in a 12 Months Path to Become a Great Engineering Leader
When I started writing this newsletter, I never imagined so many people would be interested in reading about my experiences.
Moreover, I’d never imagined that so many people contacted me every day, seeking advice on advancing their careers, often aiming for roles as Engineering Leaders or Tech Leads.
This is incredibly rewarding, but my time is very limited, and it’s challenging to provide meaningful answers to everyone since each person has a unique story, different experiences, and works in various contexts.
So, I began thinking about how I could help them all.
Of course, there’s Google and now also ChatGPT, but it takes time, and it’s not always easy to find the right resources and trustworthy people.
That’s why I decided to get my hands dirty and do the hard work for you.
I spent 10+ hours collecting 150+ learning sources to help individual contributors do a step up.
But I wanted to do more, so I created a 12-month path to becoming a great Engineering Leader.
This is how I structured it:
🛒 Month 1→3: Develop your product mindset
📐 Month 4→7: Brush Up your System Design Skills
👨💼 Month 8→11: Improve your Leadership Knowledge
🌟 Month 12: Seek coaching and mentorship
In every section, you will find:
❓Why it’s important
⚽️ Goals to achieve
📚 A bunch of resources you can study and learn from
🛠️ 3 Sample exercises you can do to grow in the area
I will keep this post open and FREE forever, and I’ll continuously update it with more resources.
Feel free to share your suggestions in the comments and I’ll be glad to include them in the article.
⚠️ Before Beginning Your Journey
Before diving into our path, there are some important aspects to consider:
In this article, you will find various books, newsletters, people to follow, and other resources, with more to be added over time. You don’t have to go through all of them! This is just a collection of trusted learning sources; choose what fits your needs and career path best.
While I firmly believe that leadership is a learnable skill, mastering it can take a lifetime. The 12-month timeline in this path is for convenience, not a guarantee.
This path isn’t a foolproof method to land a leadership position, but it’s how I would approach preparation for a leadership role as an experienced engineer.
Becoming a great engineering leader doesn’t only require study; it also takes:
💡 Motivation: before even starting to read this guide, it's important to understand if stepping into a leadership role is what you really want. It's a radical change, and you have to be prepared for that.
💪 Effort: be prepared to invest time and energy into learning new skills, practicing leadership techniques, and reflecting on your progress.
🗺️ Planning: set clear, achievable goals for each month and create a roadmap for your leadership journey.
🕒 Time Blocking: even if you don't have a sabbatical year at your disposal, dedicate specific blocks of time each week to focus on developing your leadership skills.
📝 Journaling: keep a journal to document your experiences, reflections, and growth throughout this journey.
One last reminder: Completing this program is just the beginning of your leadership journey.
🛒 Develop a Product Mindset (Month 1→3)
Developing a product mindset is essential for any engineer, and it becomes mandatory when aiming for an engineering leadership role.
As an engineering manager or tech lead, you must collaborate closely with product teams. Understanding product development and how to communicate and negotiate effectively with Product Managers (PMs) is crucial.
This foundation will enable you to contribute meaningfully to product strategy and avoid many headaches.
⚽️ Goals
Have a perfect understanding of how good products are built
Learn how to work with product managers
Be able to coach your future engineering teams to become product-minded
📚 Books
Inspired: How To Create Products Customers Love by Marty Cagan
Lean Product and Lean Analytics by Ben Yoskovitz and Alistair Croll
The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses by Eric Ries
Sprint by Jake Knapp
Hooked: How to Build Habit-Forming Products by Nir Eyal
The Product Book: How to Become a Great Product Manager by Carlos González de Villaumbrosia and Josh Anon
Product Leadership: How Top Product Managers Launch Awesome Products and Build Successful Teams by Richard Banfield, Martin Eriksson, and Nate Walkingshaw
Building Products for the Enterprise: Product Management in Enterprise Software by Blair Reeves and Benjamin Gaines
📰 Newsletters
👥 People to Follow
🛠️ 3 Exercises
Customer Empathy Mapping
Objective: develop a deep understanding of customer needs.
Steps
Select a product and create an empathy map with quadrants: Says, Thinks, Does, Feels.
Gather data from reviews, forums, and feedback to fill in the map.
Identify three product improvements based on the empathy map.
Outcome: better customer-centric product decisions.
Product SWOT Analysis
Objective: analyze product strengths, weaknesses, opportunities, and threats.
Steps:
Choose a product and create a SWOT matrix with four sections: Strengths, Weaknesses, Opportunities, Threats.
List at least five items in each section.
Write a strategy document with potential improvements or new features.
Outcome: improved strategic thinking about product development.
Feature Prioritization Exercise
Objective: practice prioritizing features for maximum impact.
Steps:
Outcome: enhanced ability to prioritize features based on impact and feasibility.
📐 Brush up your System Design Skills (Month 4→7)
As an engineering leader, you can survive without knowing how to code, but you can’t do the same without understanding how systems work and are designed.
It’s crucial to speak the same language as the engineers you will lead, participate in technical decision-making, and recognize when blockers exist.
⚽️ Goals
Have a decent understanding of the main architectural concepts
Understand how most common systems work
Know the most used paradigms in software development and system engineering
📚 Books
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
System Design Interview – An Insider's Guide by Alex Xu
Site Reliability Engineering: How Google Runs Production Systems by Niall Richard Murphy, Betsy Beyer, Chris Jones, and Jennifer Petoff
Building Microservices: Designing Fine-Grained Systems by Sam Newman
The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin L. Abbott and Michael T. Fisher
Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin
Fundamentals of Software Architecture: An Engineering Approach by Mark Richards and Neal Ford
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win by Gene Kim, Kevin Behr, and George Spafford
Designing Distributed Systems by Brendan Burns
📰 Newsletters
👥 People to Follow
🛠️ 3 Exercises
Design a Scalable Web Application
Objective: practice designing a web application that can handle high traffic.
Steps:
Choose a hypothetical web application (e.g., an e-commerce site).
Design the architecture, including components like load balancers, web servers, application servers, and databases.
Identify potential bottlenecks and propose solutions (e.g., caching, database sharding).
Document your design with diagrams and explanations.
Outcome: improved ability to design scalable systems that can handle large amounts of traffic.
Design a Content Delivery Network (CDN)
Objective: Understand how CDNs improve performance and reliability.
Steps:
Research how CDNs work and their benefits.
Plan and design how you would integrate a CDN into the system.
Create a diagram showing the flow of data between the CDN and your servers.
Outcome: enhanced knowledge of CDNs and their role in system design for improved performance.
Design a Fault-Tolerant System
Objective: learn how to design systems that can handle failures gracefully.
Steps:
Select a critical system (e.g., online banking).
Identify potential points of failure and their impact on the system.
Design redundancy and failover mechanisms (e.g., database replication, multiple data centers).
Document your design with diagrams and detailed explanations of how fault tolerance is achieved.
Outcome: increased ability to design robust systems that maintain functionality during failures.
👨💼 Improve Leadership/Management (Month 8→11)
Leading people is a skill you can learn, but it requires both theory and a lot of practice. Practicing leadership without a team is challenging (it always reminds me of the engineering joke about “testing in production” 😅), but there’s plenty of theory to study and exercises you can do until you step into a leadership role.
⚽️ Goals
Study leadership theory through books, articles, and courses.
Practice communication and decision-making skills with peers or mentors.
Engage in role-playing scenarios to simulate leadership challenges.
Reflect on personal experiences and identify areas for growth.
📚 Books
The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier
Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim
Team Geek: A Software Developer’s Guide to Working Well with Others by Ben Collins-Sussman, Brian W. Fitzpatrick, and Dan Pilone
Crucial Conversations by Kerry Patterson, Joseph Grenny, Ron McMillan, and Al Switzler
Become an Effective Software Engineering Manager by James Stanier
Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister
Drive: The Surprising Truth About What Motivates Us by Daniel H. Pink
Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity by Kim Scott-
Managing the Unmanageable by Mickey W. Mantle and Ron Lichty
Measure What Matters by John Doer
The Five Dysfunctions of a Team: A Leadership Fable by Patrick Lencioni
Leading Snowflakes: The Engineering Manager Handbook by Oren Ellenbogen
Leaders Eat Last by Simon Sinek
Engineering Management for the Rest of Us by Sarah Drasner
Agile Conversations by Douglas Squirrel and Jeffrey Fredrick
📰 Newsletters
👥 People to Follow
🛠️ 3 Exercises
Develop and Communicate a Vision Statement
Objective: practice creating and articulating a clear vision for your team or project.
Steps:
Reflect on the long-term goals and purpose of your team or project.
Write a vision statement that is inspiring, clear, and concise.
Prepare a presentation to communicate this vision to your team.
Gather feedback and refine the vision statement as needed.
Outcome: enhanced ability to create and communicate a compelling vision that aligns and motivates your team.
Create a Manager's Calendar
Objective: understand and plan the time management aspects of a managerial role.
Steps:
Research typical activities and responsibilities of an engineering manager.
Create a weekly calendar, allocating time for meetings, 1:1s, project planning, team collaboration, and personal development.
Ensure to include buffer time for unexpected tasks and breaks.
Review and adjust the calendar to balance workload and priorities.
Outcome: improved time management skills and a better understanding of a manager's daily responsibilities.
Practice 1:1 Meetings with Family or Friends
Objective: build stronger relationships and improve communication skills.
Steps:
Schedule regular 1:1 meetings with a family member or friend.
Prepare a list of topics to discuss, including personal goals, feedback, and areas for improvement.
Actively listen to their concerns, provide support, and set actionable goals.
Document key points and follow up on agreed actions in subsequent meetings.
Outcome: improved communication and relationship-building skills
🌟 Seek a Mentor or a Coach (Month 12)
We have covered product, system design, and, of course, leadership and management.
At this point, finding a mentor or a coach becomes crucial to a step up.
They can provide valuable insights, feedback, and guidance based on their experience. They can also help you navigate complex situations, make informed decisions, and accelerate your leadership growth.
Difference between Mentorship and Coaching
First of all, we have to distinguish between mentorship and coaching:
Mentorship: a mentor is typically an experienced professional who provides guidance and advice based on their own career experiences. Mentorship is often long-term and focuses on overall career and personal development. It is frequently pro-bono, driven by the mentor’s desire to give back and help others grow.
Coaching: a coach is trained to help individuals improve specific skills, achieve short-term goals, and enhance performance through structured sessions. Coaching is typically more formal and short-term, focusing on actionable strategies and personal growth. Coaching services are usually paid.
Where to Seek Mentors and Coaches?
This is one of the questions I’m asked most frequently.
Depending on your specific needs and goals, you can explore various platforms to find the right mentor or coach.
Here are some of the most effective and valuable:
Linkedin (many of the people I listed above also offer mentorship or coaching services)
✌️ That’s all folks
That's all for today! As always, I would love to hear from my readers (and if you've made it this far, you're one of the bravest). Please don't hesitate to connect with me on LinkedIn or Twitter and send a message. I always respond to everyone!
Thank you for the mention Nicola! All great tips here.
Massive effort, Nicola, to create such a detailed catalogue. This provides a clear path for everyone who would like to dive into the journey of Engineering Leadership.
Thank you for listing Perspectiveship!