One of the things that I keep seeing in both engineers and managers is a lack of ownership over their careers. Everyone (almost) wants to be promoted, have a bigger scope, and move further in their careers, but it's shocking how few realize just how much of this is in their control. I heard the phrase "own your own development" a long time ago and it really resonated with me, but I never quite grasped its implications at the time. Only after many years, I came to realize that we have far greater control over our professional trajectory. Let me address 5 common traps I've seen people fall into over the years and what to do about them.
1. My work should speak for me
For many years, I used to really believe this should be true and I kept getting frustrated when things didn't pan out how I thought they would. It's natural to believe this must be true - if we do a good job, we get rewarded. This comes from our childhood when our parents often praise and reward us for doing well. And what makes this particularly tricky is that it's partly true - if we're performing really well at work, we will get rewarded to a certain extent.
The truth is that without proper visibility, your hard work might not be noticed. This is because nobody knows your contribution better than you. Not your manager, not your peers and definitely not the promotion committee that will decide if you're ready for the next level. You need to provide ample visibility and you need to do it on a regular basis.
You should be giving at least a weekly status without anyone prompting you and make sure that status is clear and easy to grok. Be mindful of what's the audience for it - if it's your peers, it's fine (even desirable) to get into more technical details, but if it's for your leadership, make sure it's clear how your work is helping with team/company business goals. Giving visibility and having exposure is a broader topic, but providing regular updates is the bare minimum that every professional needs to do.
If your manager is constantly pinging you for status updates, it means you're not doing your job. If your manager or their manager have no clue what you work on, you're not providing enough visibility.
2. I strive to do a good job of whatever is assigned to me
Or to put this differently, you're waiting for your manager to tell you what to do next. Oh man, it's so easy to get into this habit, from juniors all the way to very senior folks. Don't get me wrong, there's nothing wrong with doing the work you're tasked to do. But if that's all you do - you're going to hit a ceiling really soon.
Remember that you're paid to do the work that's given to you, there's no extra medal for doing a good job - that's the expectation. Sure, you're going to get some recognition once in a while, but this is not a recipe for high performance.
All levels from senior onwards have a big emphasis on initiative and proactiveness. But even if you're not a senior, being intentional by saying things like "Hey this project is really interesting to me, I would like to lead it", will get the attention of your manager quickly. Or "I have this idea that can improve the load time of our application by 20% or decrease the infrastructure costs by ~15%, is there any way to get this on the roadmap?" Phrases like these are music to your manager's ears, as it makes their lives that much easier.
If you're just doing "your job", just finishing task after task and project after project - it just means you're doing your job, maybe a very very good job, but it's still within the scope of your responsibility. If it seems that you're doing everything right and that next promotion is nowhere to be seen - this might be why. Talk to your manager, understand the roadmap and business goals and see where you can bring the most value. There's always a need for leaders to come in and define or drive business-aligned initiatives, trust me.
3. My main goal is technical excellence, everything else is a waste of my time
This was a strong belief of mine for many years. I was an engineer and obviously, my job was to design the best solutions, write the most optimal code and keep up to date with the latest trends in the industry so that I can continue to hone my craft. Sounds reasonable, right? It is, but you're not being subtle enough.
As a tech professional, there is so much more work needed to drive a successful business. Isolating yourself from that work is never going to work in your favor, quite the opposite - the more you know about the customers and their needs, the more you're going to deliver good solutions. The more you understand the org chart and processes in your company, the faster you can move from concept to delivery. The better you are at collaboration, the sooner you can deliver that large XFN project with a short deadline. So don't shy away from that UX brainstorm session or that sales call that you never attend. But don't just be a silent observer, try to engage and you'll develop much stronger insights than you could otherwise. This was one of the aha moments several years in my career that made all the difference.
I could go on here, but Camille has a good checklist for this, highly encourage you to check this one out: https://skamille.medium.com/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding-8ed4a521b29f. If you don't pay enough attention to these kinds of things, it might be a good time to revisit your priorities.
4. I can get promoted every year if I meet the "criteria"
You can call it ambition or simply naivete and I really hoped this to be true when I was just starting out. It's not, at least not always. I felt this one burn early in my career when I was performing exponentially better quarter over quarter and year over year, yet my next promotion proved very elusive. I never quite figure it out at that time, but every promotion has a few aspects you might have not considered:
- Need. This mostly applies to more senior roles, but besides pure merit, there must be a need, a gap that needs to be filled by your promotion. A team can only have so many staff engineers or managers.
- Budget. Even if you're a top performer, your manager cannot promote you because there simply is no budget for it. It happens more often than you think.
- Resume. You might have the potential, but if you don't have multiple instances where you demonstrate next-level impact, you won't get promoted. That's why tenure sometimes comes into play - you need enough time and opportunities to demonstrate that you're clearly level to make the jump.
- Subjectivism. Role expectations usually have loose interpretations and this is by design. Your manager and the promo committee are people, with their own view of things which might not be the same as yours. That's why it's very important to be aligned on expectations in the first place.
If there's no need for the next role you're targeting, you're stuck - you can only move teams or join a different company that has this need. If there's no budget, there's not really much you (or anyone) can do. If you don't have a solid resume of your achievements built over the years, it's time to make one. And if you feel that your results are not recognized by your manager, it might be time to have that awkward conversation that you've postponed for so long.
5. I need to switch companies to accelerate my growth
This is definitely a popular one, and it's mostly right. You do need to switch jobs often in your career to stay ahead in terms of comp and learning. The caveat is that this mainly applies in earlier stages of your career, from what I've seen.
When you're starting out and you're driven and ambitious, it's likely that you're growing faster than your expected comp and role progression. This is especially likely in a company that isn't going through a sustained growth stage, where things aren't moving as fast. Sure, in this scenario it might be worthwhile to look for other opportunities to take advantage of your increased knowledge. But what you'll realize at some point (past the senior level) is that most companies much prefer to promote from within - so roles like principal engineer, director etc. don't show up as often in job searches. It's not impossible to land such a role coming from the outside, but it's much harder and part of it is because companies are taking a big risk when opening a requisition for this type of role.
I've seen and personally know a lot of folks that had a very fast career progression and went from junior to staff engineer or engineering manager in the span of several years. Why? Because they owned their own development, leveraged any opportunity that presented itself and proved to their team and manager that they are someone to be trusted. Sure, luck plays a big factor in this as well, as you have to be in the right place at the right time, but stories like these exist more often than you think.
So there's no right or wrong answer here, but I see tech professionals too eager to jump ship because of a bigger paycheck and maybe a bigger title, without spending some time really mastering their craft and maturing in their current role.
Know what you want first
Oh and btw, make sure you really take time to understand why you want to progress in your role and get that next promotion. Is it the title? More money? Increased scope? More control over your work? No wrong answer here, just reflect on your motivations and have confidence that it's really something you want to do. Otherwise, you might just find yourself on a big hedonic treadmill, doing things out of inertia or social pressure, things that ultimately won't fulfill you.