I would love to work at the same company until I retire. The problem is that to actually make more money and gain skills you MUST, as a software engineer, hop jobs every 2-3 years. I wish it weren't so, but that's just how it is right now. Add to it the fact that most companies don't care to actually train or retain their talent, and you've just got more incentive to hop.