But where to seek your next job becomes a trickier question when you can't pack up your car in 10 minutes. If you have a family or another reason that makes a nomadic coding life difficult to impossible, you have to think about the long-term stability of a region before committing to a new employer.
Many programmers in Silicon Valley move successfully from startup to startup. If one doesn't work out, there's another being formed this minute. There's plenty of work in different firms, and that makes it easy to find new challenges, as we're taught to say.
This may be the major reason that some firms have trouble attracting talent to regions where there's only one dominant player. If you move to Oregon or Washington and the job doesn't work out, you could be moving again.
Can you choose a niche to avoid the offshoring ax?
Lately many programmers have begun to specialize in particular layers. Some are user interface geniuses who specialize in making the user experience simultaneously simple and powerful. Others understand sharding and big data.
The growth potential of a career in a certain layer of the stack should always be considered, in particular in relation to its vulnerability to offshoring. Some suggest that user interfaces are culture-dependent, thereby insulating user interface jockeys from offshoring pressure. Others think it's better to pick the next big wave like big data warehouses because a rising tide lifts all boats.
While change is a constant in IT, it may not be practical to jump on every wave. If you have terrible aesthetic judgment, you shouldn't try to be a user interface rock star. Nor does it make much sense to try to sell yourself as a big data genius if you find a statistics textbook to be confusing. There are limits to how much you can steer your career, but there are ways to play a new wave to your strengths -- and to make yourself immune to offshoring.
Should you strike out on your own?
An increasingly common career dilemma is whether to stay full-time or switch to being a contractor. Many companies, especially the bigger ones, are happy to work with independent contractors because it simplifies their long-term planning, allowing them to take on projects without raising the ire of executives who sit around talking about head count.
The biggest practical difference is figuring out health insurance and pension benefits. An independent contractor usually handles them on their own. Some find it to be a pain, but others like the continuity they get by keeping the same independent health insurance or pension plan when they switch contracts.
Another big difference is in what you like to do. Regular employees are often curators and caretakers who are responsible for keeping everything running. Contractors are usually builders and problem solvers who are brought in as needed. Those aren't absolute rules, but for the most part, those who stick around get saddled with maintenance.