There is another option; grossly unpopular, but I have to lay it out: make a career in startups. You'll eventually land with one or two that work out very well. That may not increase your yearly salary, but it increases your overall payout over a decade, because you'll get a windfall or two.
How? As you keep working for startups, some will fail and some will succeed, in different ways. Eventually, you'll learn how to recognize the more promising ones. Are there any guarantees? No. But there are no guarantees in any path.
(Link to my bit more detailed answer on Quora: http://www.quora.com/How-can-I-increase-my-income-as-a-softw...)
[About me: Software Engineer by education and trade. Been in the valley for several years. Early employee at Box, left last year as their Director of Engineering. Now run http://InterviewKickstart.com. We've trained a lot of people on how to prepare for technical interviews, the right way, the no-shortcuts way]