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.
If the company offers no real growth technical, responsibility or compensation yes
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 real answer is "it depends", but that said, I think when you're early in your career you will advance faster, and increase your compensation more quickly by switching jobs.
I do also think there are advantages to see how different organizations and industries tackle similar problems.
But if you have a job you're happy with, are getting paid fairly, have a good manager/team, then I wouldn't just change jobs for no reason.
As you get later in your career though I do think it's easier to get promoted to more senior/staff/architect roles from within. Taking on a high level leadership position at a new company comes with its own set of challenges that are not the same for a tenured engineer that gets promoted.
Don't leave a good place because of FOMO.
I have worked 5+ years at my first work place. Good WLB, growing skills, promotions, good people. Most people who left tried to come back.
Why do you think staying can cost you career advancement wise? What are your goals?
What is unusual about your current position? If your current position is very nieche or skills are not transferable, that could become a risk for your career.
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.
If you want more money and aren't happy with your job, then yes. Look for a new position after 2 years.
If you're on the young side, you should aim for financial stability since you're starting lower. Once you get to a good place financially, then you can settle in if you find a job you like.
I'm doing well financially, with a house and decent disposal income. My current job isn't too demanding, is flexible with my time, and let's me work from home without surveillance software. I could make more money in a different job, but I feel it'll be hard to find another employer who isn't profits before employees. So I think I'm good and settled in this position.
2 years seems insane to me. I wouldn't hire anyone who has a resume full of job hopping every other year.
What if it was a promotion every 2 years?
You still worked for the same company... programmers job trees aren't that deep. Either you got promoted out of programming or the promotion isn't worth mentioning.
This is pretty bad advice and I'm really surprised to see it in a community for "experienced devs".
If you are in your 20s, single, motivated, and good at interviewing, then I say go for it.
2 years? It used to be 3 years. It's one way to get constant raises, as a company is unlikely to keep up with your value otherwise. That said, "unlikely" is the key word there. I've been lucky in finding companies that kept up with that value, at least until I fell out of favor with management. And at some point you're basically topped out anyhow unless you want to deal with FAANG-like stress. And I don't.
But yes, if you're being undervalued, you should look at changing jobs and fixing that.
It took me about two years to end up in a scenario where I was able to demonstrate a bunch of knowledge that would have otherwise gone unnoticed. I’m at about 5.5 years at my current job and currently a Solution Architect. I have stayed where I am at because in the last 5 years I have gone up 30k in salary and my next job change in October will be another 10k. I don’t plan on leaving any time soon.
Well, I'd advise anyone to constantly look for opportunities. I used to job-hop roughly every 2-3 years because I got a better opportunity. But I stayed more than 6 years at my previous workplace. Not the best financial decision but I liked my job in applied research.
Job hopping at a fixed time is silly. Don't leave a situation where you're growing, getting new opportunities and doing interesting work because generalized advice on the internet told you to. Leave when you're not happy, not growing, and not getting paid what you're worth.
The timing right now isn't great either - the market is flooded with recent layoffs, and companies are trying to pick them up at a discount.
Feel like you only received half of, possible good, advice:
I used 'two years, up or out', in my career. Who cares if you work somewhere for a longer period of time as long you keep progressing in all the various metrics of career progression?
It's when things become stale that out is a good idea
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.
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.
Experienced Devs
A community for discussion amongst professional software developers.
Posts should be relevant to those well into their careers.
For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:
- Logo base by Delapouite under CC BY 3.0 with modifications to add a gradient