Skip Navigation

Is the old advice to change companies every two-ish years still the best practice for career advancement?

I recall a regular piece of advice for software engineers: “change your job every two years.”

There’s innumerable Google results for this, even from as recently as 2022 — but none of them really seem that high-quality?

I’m really, really enjoying my current (somewhat unusual, hard-to-replicate) position; am about a year and a half into it; but I also don’t want to relax into that and have it cost me in the long-run, career advancement wise.

So, what’ve y’all been doing? Especially in the post-pandemic/fully-remote world, does that advice still apply?

24 comments
  • 2 years are a bit extreme. I think 4-5 years is a good option. But if only if I don't like the company (culture, people, policy, etc.) or I don't see any advancement in my career.

  • I feel like you should be careful trying to just optimize for the most money.

    2 years seems really short, like your boss would just finally have you producing good code and knowing all the specific pitfalls of a certain codebase and then the door slams shut behind you.

    I come from a different culture, but I've found 4 years is the right cadence for me. If you're keeping your nose to the grindstone and doing what you're supposed to, it seems like about every 4 years everything ends up changing.

    Doesn't even mean leaving. Often it means advancement.

    • I don't know, if I can get a really nice pay raise by going somewhere else and am not getting any pay raise where I am despite finally being able to "produce good code" I'd be angry and want to leave. You should do good work, yes, but this mentality of the fact that you have some degree self sacrifice being somehow more important than salary is naive and exploitative as well. If your company values you then you pay should reflect that. It isn't charity. (Unless you actually are working for a charity but that's different haha.)

      • If your skill set is just getting up to speed, that seems limiting to me.

        I know I've ignored many resumes with people who jump jobs every 2 years because those first 2 years you're getting paid to be varying degrees of incompetent and useless within a team. Moreover, someone who leaves every 2 years will never be in a position where they actually have to deal with long-term problems.

        If you don't think you're getting paid enough, well enough go out and do some capitalism. But going into any given job with the intention of quitting almost immediately to optimize your pay, I don't think that's necessarily the right way of doing it either. Employment is actually a 2-way street in good companies.

  • The sad reality in this field (and probably most jobs) is that unless you have a really good boss and a good HR it is very difficult to get large pay raises. The best way to get a large pay raise is to get a new job. Of course it isn't magical, you can't just infinitely get more. Do some research and try to see what your fair market value is. If you think you can get a lot and more and want to leave, leave!

    It is always worth mentioning to your manager that you don't feel you're being properly compensated in a 1 one 1 if that's true. Don't phrase it as you're looking to leave or anything, just ask what it takes to get a big raise.

    So, in short, if you're happy don't leave. If you're unhappy, especially because you want more money, that's where the "new job every 2 years" thing comes from. For better or worse pensions aren't really a thing anymore and there's not much value for loyalty.

    • I would second this.

      I've been at my current company as a senior SW engineer since 2015. Mostly because it's a good company, I like the people, I have mentors, the culture is good, and it's all remote. It's for a government contractor which means I ended up getting switched to a different project every few years when a project begins to sunset. Most of my experience is with various government contractors and this is the only one that's been able to transition me to other project. I'm currently working on my 3rd major project with this company and various minor projects in between.

      My annual raises have been about 3~5%, but even then I began to feel like it wasn't enough. During my last transition, I mentioned to my new boss that I felt like I wasn't being compensated enough. He asked me to name my price and I said something reasonable. He was able to give me exactly that and a few months later during the typical raise cycle I got another 5% on top.

      I really think a lot of companies don't put much thought into retention once someone is brought onboard. You just get scooped up and they do the 3~5% living expenses increase but not much beyond that. If you're feeling like you're not being compensated fairly, definitely bring it up to a manager or someone in the chain of command that can do something about it.

  • I think it's good advice to keep your options open and look around to see if there's any good opportunities every year. It's good to keep your ear to the ground, even if it's just networking or browsing through openings and talking to recruiters. But no, you don't have to change jobs every X number of years.

  • 2 years seems insane to me. I wouldn't hire anyone who has a resume full of job hopping every other year.

  • If you like your current job, don't leave. Simple as that. If you start the dislike it or feel you're not growing, then leave. It's really that simple.

  • I've never left a job for more money, and I've still seen my salary double about once every 7 years (which is about 10% growth per year) not accounting for inflation. Some years my salary went down and some years it didn't move much, but the years it jumped made up for the slow years. There have been times where my salary stagnated while I stayed at a job, but there have also been a few times where I got raises of 10% or more without changing jobs. I could name a lot of factors in my salary growth (some luck-related), but regular job hopping hasn't been one of them. I've stayed 4-6 years at a few different places, and when it was time to move on, I could ask for big salary bumps.

    If you like your current role, if you're making enough money to live comfortably, and you're continuing to grow, I wouldn't hop jobs just because conventional wisdom says you should. Your salary may fall bellow the market while you stay put, but that doesn't mean your skills will fall behind. If you are worried about either your skills or your salary falling behind, you can always talk to your manager about correcting those things before you jump to looking for a new job.

    In fact, I would argue at some point before moving up to senior level or into engineering manager, it is useful to be at a single company for at least 3 years. That gives you time to systems evolve over time and how decisions play out. That's not to say there isn't also value in jumping around and seeing the different ways different places operate. But, staying put has some value.

24 comments