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?
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
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.
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.
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 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.
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
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.
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”.