When I lived in Japan, potential employers would look at 3 years experience at the same company and ask “What happened? Why’d you leave so quickly?” There was a notion of someone being “jumpy” for having the audacity, the sheer nerve, to change jobs. It seemed to imply the person was somehow unstable and would probably leave quickly from any new job as well.
When I moved from Osaka to San Francisco it moved to the complete other end of the spectrum. I’ve had recruiters email me 1 year and 1 day into a job saying “You’ve already been there a year, you must be ready for a change!” As I marked my recent 3-year anniversary at Sharethrough, it almost felt like some kind of heresy.
There’s an unspoken judgement in tech that staying somewhere too long is death to both your ambition and skills. I feel like that notion is a bit overblown. I understand that changing companies is a good way to stay sharp technically, increase position/income, see different projects/environments, etc. But you can do most of those things within the boundaries of a good company, plus you get the bonus of building something long-term and staying with a group you really like (and have most likely helped shape).
I make it a point to take stock every 6 months and think about what I want to learn/accomplish in the upcoming 6 months. If I feel like there’s nothing left to learn or nowhere to grow, then yeah, it’s time for a change, no hard feelings. But I’m trying my best not to let that be dictated by some external notion of “It’s been X years, time to push off”.