Employees That Stay In Companies Longer Get Paid Less
Switching jobs works well when developers are in their 20's.  But I've found in the 30's that a number of factors combine to make it much less attractive:1) Each jump becomes less and less.  There's an invisible salary cap for software engineers.  By the time a software engineer is in their 30's, they've jumped a few times and are already close to the maximum.2) There are costs associated with switching jobs.  There's a risk that the new job could be far worse (team, boss, culture, etc.).  And you start at zero reputation and connections at a new company.  The lack of reputation often means less flexibility and influence since the others at the company don't trust you yet.  The rewards are greater than the costs in the 20's, but usually not in the 30's.3) It also happens to be the time when many get married and have babies.  This increases the risk factor.4) For total compensation there seems to be two tiers of companies, the top tech (google, facebook, amazon, etc.) and everyone else.  I've noticed the big difference is not the base salary (top tech only pays a few % more).  The really big difference is cash bonus + stock (RSU).5) Unfortunately, the interview skills required to get into the top tech companies is biased against older software engineers.  For an engineer in their 30's college is a long time ago.  They could spend time getting algorithm books and studying, but there's less free time at this stage in life.  So the only big jump that's worth it financially (top tech company) is very difficult to do.