The Path Ahead: (7 Traps of) Growing as a Software Engineer
Most software engineers I have interacted and worked with, at some point will aspire to grow and obtain a new role in their professional careers. This growth step might lead them to become a Team Lead, often, the first people management role in IT organizations.
However, the outcome expected of jumping into this new role might not benefit all parties: rushed promotions, lack of career planning or even unknown expectations of the role can lead to frustration, leadership anti-patterns, or in some circumstances: an underperforming role.
Fair to say none of these was the outcome everyone expected in the first place.
Personally, I can share a story or two about growing as a software engineer before I was ready to become a Team Lead, as well as taking the wrong path at the wrong time in my professional career.
Thus, here I list some traps I have fallen into, and also, some others I’ve personally seen other software engineers stumble into.
Personal Story Time
(skip if you want to learn the traps I’ve faced)
Nine months into my first job and I was faced with a promotion to Team Lead. That’s it. I had 9 months of professional experience under my belt when my team lead resigned and I was promoted. Rather than this being a story of my “innate talent” this should be a warning of “how not to choose a team lead”.
I did every mistake in the managerial book that you can think of:
- Challenged every technical decision within the team because I thought I knew better
- Focused only on under-performers and not on top performers
- I wanted to contribute hands-on and be the final code reviewer for all main technical features my team worked on
- Said yes to every external request with the idea of being “useful”
- Didn’t understand how to prioritize properly
- Worked insane amounts of hours to “catch up” on every single PR the team did
- etc
As time went by and failures piled up, I understood I wasn’t able to keep up in the technical domain, the team simply moved faster than me. This, was also preventing me from helping my team grow, and also, limiting my technical understanding of where to go next (and I didn’t want to delegate this).
All of the above and my naivety in the managerial domain were getting me nowhere.
After some introspection of where I wanted to go next, I understood my decision was to go back to SWE roles as an Individual Contributor (IC) and focus on sharpening my technical skills and scaling these by working in larger systems, problems and companies, and improve my day to day practices.
Fast-forward a couple of years from the above decision, millions of users were being served by global systems I helped build, and I was politely declining requests by my managers to pursue team lead roles. I had experienced the team lead role before, I knew what it was about, but I just didn’t want it back just yet…
The above is a personal story I share in some instances not to prevent anyone from growing into a managerial role with a doomed message of “it will backfire on you” but, rather share with a comment of “you can choose when you want to grow and how you want to grow, and set your own expectations for it”.
Trap #1: You are promoted, and start day 1 exactly the same as you would do as an SWE
You were promoted for your technical skills, managerial skills, ownership and the value you bring to your team and organization. Amazing effort! Congratulations! now it’s time to realize that around half of those skills are no longer relevant in your next role’s day-to-day and it is up to you to make sure you understand this and learn the path ahead.
Previously, you were focused on delivering user-facing features, helping raise the technical quality of your peers' deliverables by going through PRs, providing feedback on how things are not working on a specific process, etc.
Now, your technical challenge continues yet you are seeing things further away from the action. Also, you start to face different challenges such as making sure people talk to each other, changing a process that doesn’t seem to work that well in the team and making sure your direct reports get enough feedback on how they are doing. More importantly, the tables have now turned: you are the one getting constant feedback on how things are not working for a specific process.
Skills and expectations changed for your role on day 1, and failure to adapt and understand these new expectations will lead you more than likely to fail in your new role.
Overcome this trap: Leave your previous wins in the past and understand you need to pursue new and different wins within your new role. Also, make a plan to learn new skills and grow these.
Trap #2: You rushed your promotion into people management roles
The more technical projects you are part of, the more diverse technical challenges you’ll face and the more successes (and failures) you’ll have. All of these translate to experience. These are your battle scars.
And I know that the above sentence can so often be misunderstood by years of experience, but shouldn’t be. The important question is what have you accomplished (and failed at) in those years of experience?
The more battles you have fought, the more you have learned how to hit, how to sharpen your sword, how to raise a shield, and how to group with your peers to face an upcoming battle.
When I mention that you are rushing your promotion is not because you should stay more time doing the exact same thing you are doing now, or that you need to fulfil 100% of the expectations of your new role. But rather, if you don’t constantly pursue expanding your technical background or soft skills, these can at some point feel limited in a people management role and you will be playing a constant game of catching up and learning on the job. And this can get tiring.
Overcome this trap: Plan your SWE career. Spend time listing and planning what you want to achieve in your professional career and try to understand whether your next step is technical (IC) or managerial, and understand whether the next promotion available in your career path is the right fit for you.
Trap #3: Becoming a “manager” is the only path ahead
Not everyone should aspire to become a manager in the IT field. Not because they shouldn’t aspire to do so, but because nowadays there are many other options available. I venture enough to say that a good chunk of mid to large IT organizations will now differ from an Individual Contributor ladder to a People Management one.
The below graphic is one I usually share in personal conversations in terms of what’s the most basic way to understand growth as a Software Engineer:
Understanding where you see yourself in the next couple of years and what each position is about, can allow you to have better decisions about where you want to grow rather than where your organization wants to take you. Now, have you done this exercise? Where are you right now and where do you want to be in 5 years' time? Do you understand the responsibilities of the roles listed on each path?
“The split” in software engineering roles growth is usually: continue as IC or jump into People Management. Nonetheless, Lateral Options are another option you have to think about when you mention the word “growth”.
In my experience, some Sr. Software Engineers even decide to switch into a different career track such as DevOps or SRE role. This, allows them to continue to grow in their careers and within the technical domain, and more importantly, not forcing them into a managerial role.
Sometimes, I’ve encountered Product Owners jumping into Jr. SWE roles, which is another way to think about ongoing lateral options in your career.
The industry, even with its current ups and downs, still allows such changes to happen and is always an interesting option to explore in case the immediate rank in your organisation doesn’t really fulfil you.
Overcome this trap: If you don’t want to become a Manager of Managers, that’s great, you have defined a boundary for your career. The next question then is, what role challenges you are interested in, which ones are you currently prepared for? and, how open is your current organization in order to support you for such change?
Trap #4: You are not openly talking about growth
You are constantly expecting to be promoted and you bring in the work. Yet, you haven’t had a single conversation about this with your manager.
You can challenge the above by stating that any decent-skilled manager should at some point bring the conversation about growth for you, and that is true. However, if you are expecting this to happen every single performance review rather than openly expressing your desire to grow into a new role, or, be handed more tasks, then the first person to fail is not your manager, it’s you.
Take control of your career and open up conversations to understand how promotions occur, explore the requirements of the role you are after and express your interest to your manager.
Overcome this trap: Be comfortable talking about career planning, career growth, managing up and creating brag documents. Not every time you want a promotion there will be one, so, best to have an ongoing conversation about it. Also, it might be that your manager is not even aware of your interest in a new position that just opened on a new team.
Trap #5: You use your organization's career ladder requirements to generalize the IT industry
In some organizations, an Engineering Manager is expected to do hands-on coding while in others, it’s a hands-off role. In other cases, the Team Lead is expected to do some work regarding budgets, while in some others this information will be restricted to this role. In some companies, an Engineering Director is expected to run +80 people across multiple departments, in others, the limit will be 15 or less than this.
Overcome this trap: Whatever the role you are pursuing, try to understand the qualities of the role you are seeking so that you can be prepared to adjust your career plan according to the expectations of the role, not the name of the role.
E.g stop talking about becoming a Team Lead, talk about wanting to lead & grow software engineers, this allows you to understand that multiple roles can lead you to what you want to accomplish: Engineering Manager, Team Lead, Lead Developer, etc.
Trap #6: Planning-wise, everything is set in stone
You planned your career at the amazing age of 19 years old and years later, everything has gone according to plan. You pile up and have a track record of professional successes and promotions, yet, the excitement is gone, the challenge is no further felt, and you look back to better times as an Individual Contributor.
It is OK to go back to an Individual Contributor from a Managerial Role, as well as it is OK to go from an IC to a Managerial Role.
It is important to understand and recognize when expectations do not match reality. I’ve heard managers way too many times sigh a comment around the lines of “I wish I was back to just coding”.
Understand what works for you and set realistic expectations. If the path or role you are on currently is not working, discern from your current job at company X from the current role in my career I set myself to follow.
Overcome this trap: Create checkpoints and milestones for your existing role. If you made a mistake on where you wanted your career to be, then it’s the same process that you did to plan and get there: plan and work to get out of there. Take control of your career and don’t fear making mistakes, as the old saying goes “it’s not about the destination, it's about the journey”. I know, a cliché, but still true…
Trap #7: You planned to grow as an IC, which means you are hands-on coding all the time
One of the biggest traps to avoid for those not pursuing a People Management role is the thought that sticking to an Individual Contributor role will still mean being focused on coding most of your day.
As software engineers grow in the IC ladder, expectations to tackle larger technical problems are part of the job. This usually means, bigger problems = more people involved = more organizational pain.
Your technical expertise will be paramount to addressing the problem but, also, your communication skills to make sure others understand the problem, your ability to delegate to others and keep track of progress in the technical domain, as well as your ability to make sure the solution is technically accurate and others learn from you to understand that (coaching).
Yes, this doesn’t start to sound too much of an Individial Contributor, but it’s a trap that many do not see and many often wonder what IC do at the top of the ladder.
Overcome this trap: Explore the roles in the Individual Ladder and in the People Management ladder, understand differences and also, where they connect. This will allow you to understand which are common skills or activities shared between the two.
Lastly, does any of the above ring a bell to you? what trap(s) have you faced as you grew your career as a software engineer? Let me know in the comments, interested to find out.
Recommended Readings
- The Manager’s Path by Camile Fourier
Why?
This book is a must for anyone who wants to understand the challenges of growing as a manager in the IT industry. With personal examples and stories of learnings, this is a book to help you overcome challenges, understand what kind of challenges you can have and prepare you to become a better manager, or manager of managers. - The Phoenix Project by Gene Kim
Why?
A dysfunctional IT department in a dysfunctional organization. Quite unlikely that you do not feel related to the problems here stated and that is so common in the industry. This is a novel and a great piece of work, but a bunch of tips and learnings to make sure you don’t fall into the same mistakes. - Switchers: How Smart Professionals Change Careers by Dr. Dawn Graham
Why?
You are probably reading this because you are facing questions in growing into the managerial role. If it’s not for you, what are the other options? This book explores and starts by doing and explaining the exploration process you need to do in order to pursue a career change (or role). - Engineering Management for the Rest of Us by Sarah Drasner
Why?
The lost book everyone needed but was not created until recently. A must for anyone who is a manager (or pursuing to become one) in the IT industry. - The Making of a Manager: What to Do When Everyone Looks to You by Julie Zhuo
Why?
Julie’s story rings a bell to me: “Like most first-time managers, she wasn’t given any formal training, and had no resources to turn to for help. It took her years to find her way, but now she’s offering you the short-cut to success.”
The above book is the book she’d have liked to have when she first turned into a manager, and I would’ve liked to have this as well.
Disclaimer: When you click on any of the above titles, I might earn a commission from the sale. As an Amazon Associate I earn from qualifying purchases.