Captain Ned wrote:
And speaking as a filthy millennial, the common knowledge we're sharing is to change companies every few years because it's the best way to earn more money, and my experience supports that (I had one promotion worth ~6% increase, but changing companies was a ~15% increase). It's not what I want to do, but if it makes fiscal sense...
It's not just Millennials. It's been the way to double-digit pay increases since I joined the workforce in 1986 or so, especially in the financial industry (in which I've been since 1986) where you can bring a book of business with you to your new employer to cop that new title and salary.
That said, that path requires extroverted sales skills and absolutely no deficits in self-confidence. Probably explains why I washed out of that world to end up on the backwater beach known as the public sector. At 21 years in I've come to accept that I truly do work for the Island of Misfit Toys (have fun with that one).
Do I wish I had done better? That's bloody obvious. Did I ever have, or have the potential to acquire, the interpersonal skills needed to reach the pinnacle? No. It was somewhere around year 15 when I finally told what little ego I had then: "face it, you're a lifer". Haven't cared a whit since then.
Yeah, changing jobs to move up the pay scale (or even just keep pace with inflation) has been the name of the game as long as I've been in the tech industry (which is since the 1980s). It's unfortunate that management typically does not understand that it would be more cost-effective over the long run to retain people who understand the business and the products rather than having to constantly re-train new people to do the same jobs, but it is what it is. The problem is especially acute in software development due to the poor-to-nonexistent specifications and design documentation for many software projects, which makes it very difficult for new hires to become productive in a reasonable amount of time.
Through most of my career, conventional wisdom for software engineers was that multiple jobs of less than ~1 year duration were a major red flag, but if you stayed somewhere ~5+ years without moving into management you'd start to fall far enough behind the salary curve for it to be a major issue (once you've been there that long they figure you're a "lifer" and take you for granted).
Not counting short-term contract gigs (I was a mercenary for about a decade roughly in the middle of my career), IIRC the shortest I have stayed at a job was ~9 months. Longest was ~10 years. Been at the current place for just shy of two years now; will probably stick around a while yet (possibly even until retirement!) unless things take a turn for the worse, which is always a possibility in tech. For now, the work is interesting enough, and I'm compensated well.
Most of my job moves have been for better pay and/or more interesting/rewarding work. The ones that weren't were "Holy crap, this place is gonna implode, time to abandon ship!" situations. I've always stayed one step ahead of the reaper, voluntarily heading for the exit before the layoffs hit. On the plus side, that means I've never been unemployed. On the minus side, that means I've never received a severance package.
I hate office politics; but you do need to keep your ear to the ground, so you can tell when the brown goo is about to hit the rotating blades and formulate a contingency plan!