Really enjoyed this post, thank you for sharing. I’ve been thinking of similar things so I’ll ramble some of my thoughts :-)
In my case I should have left sooner at the last job (5 years) — like you I thought, why leave if things are good, and I have more to get done? Looking back I can see my best work was done by 3-4 years, and although teammates valued me, I wasn’t learning enough towards the end. Also, I was overworking. When I got to the next company I was way more engaged, learning more, accomplishing more, yet working less.
Interestingly, that last place has tried to bring me back in several times. Sometimes trying a new job doesn’t close the door on the old one, so it can expand horizons.
Hedging my comment: results may vary!!!
So, like you, I’m more inclined towards staying with a team that has mutual trust, and good mentors or other learning opportunities; but also ask myself regularly when I should move on. I think it’s best to do both... And keep options open.
Now I have a questionnaire of things I ask myself, a personal “retro” for my career, that I try to do every 6ish weeks. I set a reminder for this. And I’m going to start applying some places after 2 years at a place, even if my best judgment says things are good and I end up staying 4-5.
Holy crap you literally described my exact experience from 2 months ago, including the 5 years in one company, having done my best by 3-4 years and getting to another company that made me feel accomplishment as I haven't felt in quite a long time.
My friend's hypothesis is that "good developers shouldn't stay in a single job for longer than 3 years, since after that you stop learning", maybe he's right...
Thanks so much for sharing your experience and advice! Having a personal retro and keeping yourself open to new opportunities is a great idea. I love hearing stories like this, it's really helpful :D
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.