This is quite unsound advice, from someone who happened to grow their career in a period where the software industry was growing faster than it could find talent, so job hopping was the best way to grow.
Maybe not bad advice, just ineffective in any mature industry where promotions are typically internal, changing jobs will almost never land you into a more senior position - unless you are really, really good at CV stuffing and bullshiting your way through interviews - and leaving will usually "reset the clock" you accrued on the internal promotion ledger.
It this, more traditional setting, promotions are a power game and managers use promotions strategically to increase their own power in the company and gain allies. This means that you have a cooperation-competition relationship with your own manager: he either levels up and drags you too because he wants loyal people around, or he sees you as a potential competitor his own boss might promote into lateral teams that will then suck his resources. Knowing where you find yourself in this game, who are your allies, what does upper management want and how can you fulfill it and gain their confidence are the keys.
I agree with you power game view. The cooperation can even extend beyond the current job. That is, when managers move to another company, they attract some key people from their team to the new place. (There are other incentives for managers to do so: e.g. to show they are effective at recruiting.)
This advice is not wrong, but honestly it could be way more cynical.
The first step to get promoted is to understand the promotion process of your current company, if they have a formal one. It took me one year to learn how promos work in my current company, and that was one whole year of progress lost.
Then if you really want to get promoted fast, you need to optimize to meet the promo criteria. Often that is in line with OP advice, sometimes it is against it. And above all, learn about scope, impact and visibility. Also learn about optics and politics. Sadly often promotions are not so much about your accomplishments, but how you present them and how people perceive them. The old advice of "work really hard and you will be rewarded" is moot if the right people don't know about it. Some people get promoted faster by doing less but promoting themselves harder and louder.
Even if you don't want to exactly game the system, it is still useful to know how it is played. For example, if you accomplish some extraordinary, spend a bit of effort letting higher ups know about it.
> Then if you really want to get promoted fast, you need to optimize to meet the promo criteria.
This gets repeated all the time, but it’s easy to overdo it.
It’s true that you’re not going to get promoted if you don’t meet the promotion criteria, so you have to meet the criteria if you want to move up.
However, I’m seeing more and more juniors who think promotion criteria are some game they’re going to min-max, and that I have to promote them if they check certain boxes. They do weird things like ignore their assigned work and spend all their time working on a high-visibility side project, or ignore the way work is assigned and try to do only the things they see as promotion-worthy. Or other times they’re just difficult to work with, unliked by their peers, and avoided by people who don’t want to deal with their politics. Then they can’t understand why we didn’t promote them to team lead despite their work on that one high-profile thing earlier this year.
If you play it too much like a game, it’s obvious and starts to backfire. If you go fully cynical on the process, it’s almost guaranteed to backfire. I’ve seen some people included in layoffs mostly because their constant promotion-seeking competitiveness turned into pervasive toxicity and everyone was looking for the first opportunity to remove them.
Maybe at some companies the pure game theory mode works out, but you have to build relationships and be a good person to work with. At some point, the “game theory” approach just looks like “do a good job and make relationships in the process”.
Last year an engineer in my org got promoted to Senior Staff. In order to get there he alienated and burnt out many other engineers, including me.
But guess what? he got the promotion, which is what he was gunning for, and he only alienated his peers. Leadership still support him and think he is a genius (BTW for doing things like taking credit from others). Also he seems to have chilled down a lot since the promo, so if you only interacted with him afterwards you would have a very different opinion of him.
There is this idea that tech is a small world, your fame will precede you and such, but in practice I have seen the opposite. It seems way too easy to outrun your mistakes, either by changing teams or companies. I guess that is why it is relatively common to switch companies right after a promo. I have seen not so brilliant people greatly exaggerate their accomplishments and jump to greater highs.
They say that you can't fool all the people all the time, but that framing is wrong. You only need to fool the right people long enough. And in tech, long enough seems to be 2-3 years, after which you can jump ship and rinse and repeat.
I don't know about your company, but in mine executives never get fired. They always "leave for new and exciting opportunities" or "to spend more time with their families". I remember reading an article from an entrepreneur saying that a high % of executive hires are duds, but this is often kept under wraps to save face for both the company and the executive.
Bottom line, min-maxing your career progress *can* backfire, but statistically you'll be ahead by doing it than not. And you can minimize the downside by outrunning your mistakes, moving to other teams or companies (this applies less with the current job market).
> “do a good job and make relationships in the process”
Exactly! Do a generally good job; don't be an asshole; read the promotion rubric, but don't read it every day; it's far more important to understand what the strategy of your team/org/division is and work towards that.
My career has been a pretty good progression of ever increasing titles and doubling my pay every four or so years. My secret is this: Always say yes to the new challenge. Do the thing no one has done before.
Sometimes it doesn't work out. You either fail to deliver because it was too challenging or the company changes direction. And even then you still learned some new skills. But when you succeed people notice. And then you go out and talk about what you did and people outside of your company notice too.
The advice I would give a person coming to me with that question would be tough to say: I don’t know if it’s possible to grow one’s career today as quickly or as far as I was fortunate enough to do. It’s just a very different dynamic overall.
I don’t mean to be cynical, or throw cold water on anyone’s ambitions, but I do want to add a different perspective here for those that care enough to read on.
I entered the professional software world at a time when there simply weren’t enough people building software. There was an extremely high priority on “bringing people up” throughout the industry. That didn’t change for decades.
But today there are approximately the right number of folks doing this work; still too few but the scarcity of candidates is far worse in other industries. Frankly, an electrician may have better long term prospects as far as I can see. But more importantly, this industry has matured and the focus is more “normal” (market adjacency, efficiency, risk reduction, globalization, benchmarking, etc). There is plenty of opportunity still, but also less.
In addition to that “cheerful” opinion, I’ll offer that I (to some degree) regret moving “up” so quickly. I missed opportunities to become truly expert by taking on new roles. It all worked out okay, but didn’t do much for my imposter syndrome. And, it kept me in positions working for others when I (looking back) would have done better financially and felt better about it had I pursued my own path (entrepreneurship). Hence, being here on HN and paying attention to YC.
> (looking back) would have done better financially and felt better about it had I pursued my own path (entrepreneurship)
Perhaps just normal regret from perfect hindsight? I believe doing a startup was easier in the past than now because there were more opportunities and less competition. Now a software startup is more likely to be in a crowded market - or if you do find a unique niche others will quickly copy? Still plenty of opportunities but maybe start in a niche?
> > I missed opportunities to become truly expert by taking on new roles.
Great technical skills in narrow areas are not that useful in a founder. Jumping in the deep end and soft-skills and solving problems without help are more useful: and your career sounds like you got more of that.
I suspect your career path has left you with a far better ability to found a startup than you think. The only block is that we get conditioned to working in a large company and changing gears is hard. If you had the personality to succeed in a startup, you can still do so.
Maybe unwanted advice and I've only really had experience in my own startup so perhaps not helpful! I would also suggest avoiding VC - VCs select for certain types of failure that you don't want. Also you will always lose (extremely assymetrical game with long term players - the field and rules are also biased).
The vast majority of devs are under 30. Already most people are "senior" after 5 years experience. What are we going to do when this cohort wants to get promoted into architects and managers in 10-20 years time? There just aren't enough senior jobs.
You're making a joke (and the reference is great) but this is actually what happens. It's where the idea of "Lead" came from, and in many other industries it's much worse. It's why in business there's "(Acting) Associate Senior Execuitve Global Managing Director, Clients and Markets" type positions, so nobody can definitively compare themselves to one another ("oh, so you'll be reporting to me") and people can feel like they're moving up, instead of just being called "manager" or whatever and understanding it's a wide band.
I don't know Goldman at all, but I know there are plenty of corporations engaging in labor fraud by giving everyone and the kitchen sink the title of "Vice President" because of the benefits under the labor laws. Doing so is fraud if it is clear the title is given to hundreds, if not thousands, of employees who actually perform no functions that warrant an executive title. I worked at a Fortune 500 company with a total workforce ~10,000 of whom ~50% had the title of Vice President and another ~25% Assistant Vice President.
What do we do when they all want to be CEO after that?
It's just a reality that promotions are limited and not guaranteed, and that reality becomes harsher the higher one climbs.
Also, many people don't want the leadership and organizational responsibilities that come with being promoted higher (less coding, more politics, less working by yourself, more working through others' hands, etc.)
How do you arrive at this conclusion? “Under 30” but old enough to have graduated college leaves only ~8 years of career. Unless you think the majority of devs are retiring before the age of 45-50, this doesn’t make sense at all.
I think you might be in a bubble with a lot of young devs, but it’s a big industry out there. Devs don’t just disappear or retire when we hit our 30s. They’re probably just at different companies.
Anecdotally, I've been one of the oldest developers in my companies since I started in the industry. I have no idea where old developers go, but it's starting to feel a bit lonely here.
As with any scarce resource, the most effective people will get them.
This piece is to help people be marginally more effective and be one of the ones that gets it.
PS: your question assumes stable demand for software engineer, but I'm completely uncertain whether it will grow stay flat or disappear. It all will depend on how AI goes, as well and overall economic development and digitization of the economy.
> cohort wants to get promoted into architects and managers in 10-20 years time?
Architect is a different role than a dev, assuming dev means programmer/coder/software developer/software engineer.
Manager is a completely different career path.
No every dev wants to change their role into a non-dev. Some will, some will and will end up going back.
> There just aren't enough senior jobs
Well the job will change. New teams, products, companies will come and go. No one stays at one company anymore -- okay that may be an exaggeration but very rarely do you see one person working a single job in this industry for 20-30-40 years anymore.
It's not fundamentally different, and all engineers should be scaling their impact. Staff engineers who think like this tend to be the most useless engineers, since they eschew real work in favor of appearing politically powerful with lots of cross-team impact. Scaling impact is good, but real work often requires being deep in the trenches.
The engineering ladder is one of the worst things to happen to this industry. Sometimes cross-team is the easy stuff, and solving some deep technical issue has the most impact.
People here hate leetcode and IQ tests but they are far better filters than "job level" where I've seen many principal engineers failing to write basic code.
I'm a staff engineer. My work is quite different from what I did as a senior. I spend much more time investigating/solving organizational problems, attempting to make knowledge available cross-teams, extracting requirements from existing projects, proposing new projects, etc.
When I'm not doing that, I'm working on deep technical issues, but I already did that as a senior/tech lead.
In big tech, I have found the following to be critical for engineers.:
TLDR: Team selection is 70% of it.
1. Find team with high turnover, overall low tenure. Avoid high tenure teams at literally all costs. The politics will be high, and there will be a line to get promoted. Try to figure out if someone is being primed to be promoted. Do not join the team if this is the case.
2. Further filter for teams that are somewhat business critical, legacy tech, and are failing all of the time.
3. Unfortunately, this one is very important. Find management that looks like you, was educated like you, and overall is very receptive to you on first interaction. DO NOT DOWNPLAY this. People at FAANG promote based on natural affinity.
4. Understand the parameters to get promoted, notify your manager of your intentions. DO NOT TRY TO INNOVATE. Hit all deadlines right on time or before. NEVER take on extra projects before hitting the deadline, removing all extra work, only ever work on tracked tasks with documented high profile outcomes.
5. Do this for 2-4 years, if you havent got promoted by then, leave.
So avoid working with people that can teach you things? That’s not a great plan.
If not for my role as a fresh out of college QA person working in a team of 6 deeply expert, very senior folks (with essentially zero turnover) I would absolutely not be where I am today.
Is that a conclusion grown by thinking of promotions as a win/lose against your peers? That’s never been my experience. I was less capable and valuable than my peers in my first role but was promoted quickly and repeatedly by learning quickly from them.
I’ve looked for the same in executive roles as well (though I’m not really interested in a promotion at this point). It always makes sense to work with people to learn from and respect.
Joining a team with short tenure and high turnover is high risk. Often there are very good reasons noone sticks around and you'll just end up burned out.
If the point is to get better at your craft, pursuing rapid promotion (especially into management) is antithetical to the goal. Craft comes from practice.
I’m sure there are all sorts of cynical strategies that are more effective for getting promoted, but if you love programming then putting the love into your programming will probably work out alright for you.
My last employer had a policy of rotating managers every few years. Each had a different set of priorities. Then there's politics. I accomplished a project to the great pleasure of my manager and VP. A year or so later along with rotations, we were all dumped.
Maybe not bad advice, just ineffective in any mature industry where promotions are typically internal, changing jobs will almost never land you into a more senior position - unless you are really, really good at CV stuffing and bullshiting your way through interviews - and leaving will usually "reset the clock" you accrued on the internal promotion ledger.
It this, more traditional setting, promotions are a power game and managers use promotions strategically to increase their own power in the company and gain allies. This means that you have a cooperation-competition relationship with your own manager: he either levels up and drags you too because he wants loyal people around, or he sees you as a potential competitor his own boss might promote into lateral teams that will then suck his resources. Knowing where you find yourself in this game, who are your allies, what does upper management want and how can you fulfill it and gain their confidence are the keys.