With that perspective, we can derive some rules of thumb:
1. Promotions are not a reward for past performance. Instead, they are a bet that you will contribute more towards those goals with a promotion than without one.
2. As the OP says, if you are demonstrating performance at your boss's level, that's evidence/proof that a promotion is warranted. Your boss's goals get implemented (by you), freeing them to work on their boss's goals (and maybe get their own promotion).
3. The more time you spend with your boss, the better you will understand their goals, and symmetrically, the better they will understand your strengths. That means leaving a job after a year or two is not always optimal. It also means following a good boss to another company is often a good move.
4. There will be cases where the goals of your boss (and their boss) diverge from your own goals. They often want to cut costs, but you want a salary increase. There are never easy answers to this dilemma, but seeing their perspective is useful so you can find a win-win scenario. E.g., if you come up with a way to save money in other ways, such as automating an external cost, then your increased salary will be worth it.
5. In some cases, of course, there is no way to reconcile your boss's goals with your own. Realizing that is useful so you can find a different company/boss that is more aligned.
Yes, the best way to get promoted is to do work above your level. The problem is, you're not getting paid what you deserve for that. If you're always doing this, you're always being underpaid by a full level.
Which is why much better advice is to try to get promoted by switching companies and jumping a level in the process.
Managers certainly want to take advantage of you by getting you to overperform without being overpaid. But employees should do everything they can not to fall for it. Which usually requires getting companies to compete over you.
When I was a CTO it ultimately required the talk: "It's MY job to manage dev resources and figure out what levers we push where with our limited money. When you try to do a different job then you got hired for, you screw that all up and set me and the company up for failure. If you don't want to do your job, you need to look for another one"
It definitely didn't make me want to promote those people.
A much better approach is to talk to your manager and skip manager about what great career development looks like to them. And if there is no path and that's what you're after, leave. (Lots of good jobs out there that just don't have this path for perfectly good business reasons, or the funnell is too full.)
Managers like that are few and far between. If you find one, make it clear to them you want to follow them because they'll get snatched from you in no time and be themselves promoted far far away.
How to find said manager? Ask around, do a little org chart recon in Outlook and do some networking. Where is the drama kept to a minimum in the org? What teams seem to be succeeding both internally and across to other teams. Are there teams where the techies are outspoken (positively) within the org and making a name for themselves in the org? Get to know the managers for those teams.
You may have heard people quit when their manager is a tyrant, this is very true! But there is a middling type of manager, not a horrible person, but also one that isn't helping you along either. Maybe plot and scheme on how to gracefully move to other teams you could better contribute to.
The opposite advice is essentially addressed in Being Glue by Tanya Reilly^. If you do a job that your management chain is not measuring, you won't be rewarded for it.
Excerpting:
> But sometimes a team ends up someone who isn't senior, but who happens to be good at this stuff. Someone who acts senior before they're senior. This kind of work makes the team better -- there's plenty of it to go around. But people aren't always rewarded for doing it.
If you take the op advice literally, you might find that you're not promoted AND management thinks you're bad at your job
So the rules of promotions:
1. First, do the things that are expected of you. If you don't do these things (or you do them in a way that management doesn't expect or can't measure) you will have to do additional work to make sure they get measured. Staff engineers are good at doing auxillary work and explaining why it's valuable. If you aren't, then focus on the things that are obviously valuable
2. If you're doing everything your team needs from you, now is a great time to do the additional work. Figure out where test coverage is anemic, profile that really slow query, write up your list of pain points and throw together a list of some initial ideas for solutions (codex & Claude can be great helps here, but don't be like OP. If you use AI to write something, let everyone know: "codex and I think these solutions might work, but I haven't spent much time on it")
3. Talk to your manager regularly (monthly) about what things you need to do to try going up for promo at the next cycle. Again, if you do this without doing (1), you're not getting promoted. That's why it's down here at (3)
Are you sure you don't want this person working on the things they are supposed to be working on?
Further, even if it all goes well, you're encouraging someone to do a more stressful job and not (yet) compensating them. Given the fact that you can't practically promote everyone you want, this risks your senior-with-junior-title feeling taken advantage of and prone to look for their title elsewhere.
Six months of unpaid stress for doing your managers job for a glimpse (not given!) promotion. You're a great manager, worked with a guy like you – never again.
If you read this and you're at the start of your journey, then heed my warning: nothing good comes out of this ever.
Also, if the company isn’t growing, none of this matters. You can operate like a CTO all you want and all that happens is more work gets dumped on you for the same pay. Take on stretch work if you’re hungry for it and it’s explicitly acknowledged as next-level responsibility. Otherwise, you’re just volunteering to be exploited.
"Readiness" means that I believe that after their promotion they will be able to execute at the higher level at least most of the time. That doesn't necessarily mean they need to be already doing the higher leveled job, but in practice they do need to show that they can sustain some approximation of it.
It used to be the case that the only way for engineers to advance their career. But we've long moved since and now you can have a long career and get very high in a company without management responsibilities. The examples given in the blog post are exactly what I would expect ICs to do, not managers.
Do you want advice to get promoted? if your company has a formal career ladder, look into the process and optimize for it. Despite people grievances, this is still the fastest and easiest method to get a promotion (shocker!).
Sure, the boss and the company would like you to work extra, but when did the company ever pay you extra up front for work you—perhaps—would deliver at a later time?
You are a business. It’s not sound business to lower your own hourly rate.
Sure, if everything looks 100 percent aligned, buy the pretty girl a drink, but most of the time things are not aligned.
Don’t be the prostitute who expects to get paid later.
That's not what I learned from work. I saw people with skill way beyond their position hang around companies getting jack shit before they eventually got bored and left, and then other people getting thrust into seniority for arbitrary reasons:
> Oh, you got hired just three weeks ago? Well the rest of the team has just quit, so I guess you're in charge now.
> Corporate are trying to fix the gender imbalance in the c-suite, you're a woman, you want to be an executive?
Both of those people _were_ very good at what they did, but so were the other people who didn't get those arbitrary events.
Good or bad, this is how the industry I work in promotes.
I think the best approach is to take on extra, above position responsibilities, accountabilities after discussion with superior, after agreeing in writing that this is part of a path to promotion.
I once was told "we cannot promote you because the work you've done checks the boxes for 2 rolls above you and does not check the boxes for your next roll"
Of course the advice in OP is going to be relative, but it’s not a bad rule of thumb to have a good sense of what your immediate does, how they think, what metrics they value, etc. If not for your own advancement- keeping immediate leadership off tilt can greatly increase QOL, or vice-versa. I personally would love to have leadership above me that I think "damn, I'd like to be a little more like that guy" but in almost 20 years of being in the workforce, including military and the likes, that kind of leadership has been hard to come by.
Advice: solve business bottlenecks.
Their approach: - research the biggest problem in a company with as less communication as possible - prepare a full, easy plan well designed. They used slides and a designer. - split the plan on parts and first part is already with a nice designed demo. Make sure a founder/boss’s work is only pay and say yes. Zero headache. - make a meeting and pitch it, so a founder/boss can’t say no
Back when I was working as salaried employee, I never asked for a promotion or a raise. Not once. But I got them! Meanwhile, I watched coworkers spend years fighting for promotions, taking on so much more work than I would ever agree to, and were repeatedly denied. Eventually, they would give up and get a job elsewhere. Some did manage to get promoted, but it was grueling.
These coworkers weren't less skilled than I was. I would say many of them were actually more capable, despite my position being ranked higher.
A lot of comments here are talking about "healthy" work cultures and whatnot. I worked for medium-sized tech companies that you've heard of with great engineering cultures and a healthy approach to work-life balance. I don't believe that "healthy" results in getting recognized for going above and beyond.
Others are mentioning office politics. I did not befriend coworkers, did not make enemies, etc. I simply did my work.
I'm sure many of you have had the experience that if you make a mistake—not necessarily at work, but just in general—and then apologize profusely, you will be treated worse than if you were more casual or didn't even apologize at all. I find that making yourself "smaller" will often result in people taking advantage of you. Similarly, it seems to me that working super hard will simply raise people's baseline expectations of you, and they will exploit that. This isn't necessarily a conscious thing on behalf of your boss(es), but it's absolutely something that happens.
Given all of that, my advice is to simply do your job. Over time, you will gain more experience, and that experience will potentially turn into promotions naturally. If not, then get a new job. Note however, that I'm not a proponent of frequent job hopping (I never spent less than three years at a company).
If you're not self-employed, then your work is making someone else rich. No need to make them even richer if you're not getting compensated for it.
The blog is not terrible advice, but "getting promoted" just seems like a waste of time and effort nowadays. To get promoted at Google from L5 (Sr SWE) to L6 (Staff SWE) you need to do the work of a GOOD L6 for 1y+ and have made some very solid internal networking connections and have multiple managers on your side and have an opening for such a role.
To get hired away from Google to an L6-equivalent role at Meta (or whereever) you need to get halfway through one L6 project and do a few hours of interviewing. There's no comparison in the level of effort. (And I'm not picking on Google here. I think it's the same or worse nearly everywhere.)
Most people wait to be promoted to the title/designation to do the work of that role. However, if you want to avoid friction when asked, “Why should I promote you to this role?”, you should already be doing the job and proving you can do it.
I once saw a QA tester tinkering with the front-end code, fixing the bugs himself, then went to the engineer and pointed out where to fix. When asked if he wanted to become a front-end engineer, I realized he was waiting for an opportunity to be promoted. So, I repeated my usual advice: if you want to be promoted, be already doing that role. He started learning, and work on front-end work besides his QA work. When he asked to be promoted, it was just a title change and a pay raise. He went on to lead the Product Design Team at a major oil company (at a branch in Bangalore, India). A Good photographer, and always has an eye for design.
Similar story of an engineer waiting to be promoted to a Lead Architect. Advised him to start doing it way before talking about his promotion. I don't remember his promotion in the team I was working but heard back that he was easily gotten to that position and a big salary jump at a new company (a new city). I once saw him working in the plane we were flying together, while I was sleeping. I think he deployed when we landed.
In touch with both, and lot others. None that I had advised on doing the role above them have regretted.
For me, taking responsibility is one of those necessary (but not sufficient) things I have to see before I will consider a promotion (at least, a genuine one where someone actually operates at a higher level with more autonomy).
Unfortunately there are a lot of places that do dislike this - and it may result in you getting fired instead of promoted :)
At one point early in my career the old engineer left. I quickly stepped in “just until they hired somebody qualified”. Back then, a 4 year CS degree was required to get the job.
For reasons I can’t recall, we couldn’t hire someone for 6 months. My boss and I had a meeting with HR where he pleaded my case to get me hired. The HR director was actually yelling that I wasn’t qualified.
My boss calmly replied “He’s been doing it for the past 6 months. He’s actually been making improvements. Remember that process of yours that suddenly got a lot better? He did that.” I ended up getting hired right there. There was further drama about me being at my pay scale without a degree but my boss shielded me from much of it.
For that 6 months and for another 12 months after, I probably spent 18 hours a day working or learning to get up to speed. I was single and motivated so it worked out. Loved that boss.
That was many decades ago so I keep an eye out for that spark among my colleagues. I occasionally see it but for the most part, they are much more ambitious than I was and that warms my heart. (Two of them started companies you’ve heard of and cashed out)
Its good to do this to get an idea of what it means to work on a higher level but it WILL NOT get you promoted.
Promotion is about leverage. What can you supply that no one else can and thats crucial for your bosses-boss's success?
Stop thinking execution - its exactly the opposite of that.
Can you recruit people from other organizations, can you create a new product, work with every part fo the comapny, evangelize the company externally, attract capital ...
You also want to figure out if it even makes sense to go for a promotion, if the organization isn't growing - it's going to be a lot harder/impossible to make it.
It also may not be financially worth it if you care about work-life-balance. It might be worth it to get paid 50-70% as much but not have to spend your day in back to back meetings. It may even pencil the same if you consider hourly rates and taxes.
But what about insecure managers, jealousy managers, and managers who reward folks who are loyal to them or based on same region/country?
When I was a junior, mid, and starting senior level developer, I was so focused on getting ahead, and I would’ve listened intently to this.
The reality is though that most managers and principal or higher devs are great with you taking on responsibility if you’re ready for it, and making mistakes and learning is often fine, but when you stop respecting those with more experience and start working around them, they’re not going to be happy.
My advice: take on responsibilities and do the work, but always respect others. You will never regret giving someone enough respect. If you have a heart or a brain, you will almost certainly regret not treating someone with respect; it will haunt you, even if you one day apologize to them.
I was essentially doing what this article was advising, but because of the corporate structure I was in, I was just volunteering to be taken advantage of. The correct strategy actually was just to leave. I wasn't going to be successful in that structure, it wasn't a meritocracy and the business results over time went how you would expect. In the end I leverage a job offer to put myself on track to get into that role within 2 years, but in reality that was 2 years wasted, I should've left immediately.
I liked the article and it’s right, but at the end of the day you also need to make sure your manager puts you up for promotion and that he is allowed by their management as well.
protip: this won't get you promoted, won't get you any accolades within the company, and will more like get you on a Performance Improvement Plan
if you want to get promoted, get a offer at another company and take that offer
if you want a fat bonus, if your company has a formal bonus structure, do other's people's work for them while potentially neglecting your own
I don't want a promotion. I don't want a new role.
I want more money to keep doing what I already do.
1. Company has money people may want
2. People have unique skills a company needs to profit
3. Everything else is 100% unrelated BS
On average, every software developer brings in >$1.3m USD/year in additional revenue. If you are being exploited, than just find a better gig someplace better... as it is usually easier than advancing out of a critical role.
Salaries with legal encumbrances are usually just a terrible deal in the long-term. =3
In argentina we have a saying "Too much chief for too few indians"(as in indigenous people), everyone wants to be the boss, no one wants to do the dishes.
I've been a victim of this, and it especially was a problem when my actual role responsibilities suffered, but even if I managed to fulfill my responsibilities perfectly, it caused friction and a command chain confusion. (especially when other people tried to compete for a promotion as well)
But but but, in some scenarios it has been at the expense of my well being. It’s not good to take on more work and not let go of some of the things you’re currently doing. Moreover, finding “permission” from your boss to let those things go can be challenging.
I’ve found this works best when you and your boss agree on the problem you’re stepping into (not necessarily your solution). It may be that you need to stick your neck out and suffer for awhile for them to see your perspective.
When you’re on the same page about what you’re solving, a good manager will clear room for you.
In my experience, managers will naturally partition their reports into three buckets: their stars, their problems and their worker bees. The worker bees tend to be ignored. They're doing fine. They're getting on with whatever they've been told to do or possibly what they've found to do. They're not going to create any problems. The problems are the underperformers. These are people who create problems and/or are at risk of getting a subpar performance rating.
Now there are lots of reasons that someone can be a problem. I tend to believe that any problem just hasn't found the right fit yet and, until proven otherwise, problems are a failure in management. That tends to be a minority view in practice. It's more common to simply throw people in the deep end and sink or swim because that takes much less overhead. You will see this as teams who have a lot of churn but only in part of the team. In particularly toxic environments, savvy managers will game the system by having a sacrificial anode position. They hire someone to take the bad rating they have to give to protect the rest of the team.
And then there are the stars. These are the people you expect to grow and be promoted. More often than not however they are chosen rather than demonstrating their potential. I've seen someone shine when their director is actively trying to sabotage them but that's rare.
Your stars will get the better projects. Your problems will get the worse ones. If a given project is a success or not will largely come down to perception not reality.
The point I'm getting to is that despite all the process put around this at large companies like performance ratings, feedback, calibration, promo committees, etc the majority of all this is vibes based.
So back to the "take my job" advice. If someone is viewed as a star, that's great advice. For anyone else, you might get negative feedback about not doing your actual job, not being a team player and so on. I've seen it happen a million times.
And here's the dirty little secret of it all: this is where the racism, sexism and ableism sneaks in. It's usually not that direct but Stanford grads (as just one example) will tend to vibe with other Stanford grads. They have common experience, probably common professors and so on. Same for MIT. Or CMU. Or UW. Or Waterloo. And so on.
So all of the biases that go into the selection process for those institutions will bleed into the tech space.
And this kind of environment is much worse for anyone on the spectrum because allistic people will be inclined to dislike from the start for no reason and that's going to hurt how they're viewed (ie as a star, a worker bee or a problem) and their performance ratings.
Because all of this is ultimately just a popularity contest with very few exceptions. I've seen multiple people finagle their way to Senior STaff SWE on just vibes.
And all of this gets worse since the tech sector has joined Corporate America in being in permanet layoff mode. The Welchian "up or out" philosophy has taken hold in Big Tech where there are quotas of 5-10% of the workforce have to get subpar ratings every year and that tends to kill their careers at that company. This turns the entire workplace even more into an exercise in social engineering.
> I couldn't have been happier.
And phrases like this.
This site is so detached from reality sometimes its hard to even say anything.
Some classic management gaslighting. You have to work for a few years at the level of the higher position to get it. I will trust your work at this level, profit off of it, hold you responsible for it but not pay you appropriately for it. It's always the compensation piece that takes time.
If the staff is large enough, calibrations are done to find template team members at the higher level, to make it very clear that the candidates performance is meeting that higher bar.
I think most ICs think “I’ve been working hard, I deserve a promotion”. A better barometer is whether your peers assume you are already at that higher level without knowing your rank.
ive been "trying to take my boss's position" for a few years and he really appreciates it. but during my last review my boss's boss pointed said he wasnt aware of any of this. i was leaving him off all my cc lists because i figured he didnt want the cluttered inbos. he said the opposite, he thought i wasnt following up and doing my job
all my effort was actually having a negative effect in the perspective of the decision maker. hopefully i knock his socks off this year since apparently the bars been lowered to the floor
Is it really that common, or do these posts just bring out those types of comments?
TBH, in this field, it seems like other problems are often more pressing:
- I've been a developer in XX language for NN years. How do I get my next job when the company is now hiring YY developers instead?
- There are lots of Level II jobs for YY, but I'm at level IV. Will eligibility rules even allow this transition?
- There are some Level V positions for YY, but my level IV in XX doesn't really qualify me in a way that would pass a tech screen.
The concerns in these types of posts are just so... different.