3.3 years. First job out of college. I got the job because I was an intern the year before. I started out as a computer operator. They needed a developer to write a CRUD app and I left because there was no more development.
9 years - I stayed 7 years longer than I should have. My career and pay stagnated - only made 10K more in year 9 than I made in year 2. Never again. I realized I was a good developer but a horrible software Engineer.
2008
3 years - a company working in mobile. This was my first experience with modern software development - DDD, Unit testing, continuous integration, source control etc.
2012
2.5 years - first experience with a large company and working with a large development team. I learned a lot about what to do and what not to do. It came in handy two jobs later...
2014
2 years - it was a horrible over political environment that followed all of the anti-patterns of software development. But I did get a chance to polish some skills that prepared me for my current job.
2016
Current - 1 year. My first job as the "architect".
All that to say. Never stop learning like I did between 2001-2008. I spent the next 9 years making up for loss time.
Whenever I feel substantially undervalued. For my first few jobs, that was relatively often (1.5-2 years) since most companies will offer tiny raises, while your skill growth will be raising your value much more substantially. My first few raises were about 2-10% increases, while switching jobs was about 30-50% increases. Eventually the skill growth will slow on the critical path stuff (don't let it slow too much!!), and you might get to a level where promotions come with more substantial increases and then job hop less.
Don't think I've switched enough for anything about times between switching to be meaningful. But then IMHO, not many people have. Better to have guidelines for when to leave and when to stay rather than being concerned about times.
Although it is a guideline that if you have your most recent or more than one job lasting <1yr or so, and you're applying for something that expects people to last longer than that, you better be able to explain why you left the other jobs so quickly or what changed in what you're looking for.
Current job is 3 months. The 7 year stint was at a friendly agency, paying reasonably for the area with good perks, friends with the directors, short commute etc. What I wasn’t doing though was evaluating whether I was still learning. Turned out I wasn’t, and if I’m being honest with myself I should have left 18-24 months earlier. The last 2 year stint was the most instructive of my whole career, and I left mostly due to moving country rather than a problem with the post.
Currently at 19 years at my job, but that includes acquisitions, and many role / job description changes. Even though I'm up-to-date on modern languages, frameworks, and libraries, I expect this to make finding a new job much more difficult, due to biases against long-term empooyment and being older than 40.
I plan on sticking with $current_job for either 3, 5 or 8+ years depending on career prospects at each of those checkpoints. Each time I switched it was because career prospects were not as bright as I would have liked.
9 years - I stayed 7 years longer than I should have. My career and pay stagnated - only made 10K more in year 9 than I made in year 2. Never again. I realized I was a good developer but a horrible software Engineer.
2008
3 years - a company working in mobile. This was my first experience with modern software development - DDD, Unit testing, continuous integration, source control etc.
2012
2.5 years - first experience with a large company and working with a large development team. I learned a lot about what to do and what not to do. It came in handy two jobs later...
2014
2 years - it was a horrible over political environment that followed all of the anti-patterns of software development. But I did get a chance to polish some skills that prepared me for my current job.
2016
Current - 1 year. My first job as the "architect".
All that to say. Never stop learning like I did between 2001-2008. I spent the next 9 years making up for loss time.