It seems that they go a few directions: The most common seems to be to try and generalize, because relearning most of your job skills every few years starts to get annoying the 20th time you've had to do it. It's different when you are younger and everything is new, you just chalk up a major tooling change as just something else to learn. But when the next hot platform or architecture or whatever comes out you get ti…
I'm going for the fifth option. Build a software-as-a-service business that pays the bills and allows me to keep working on my own projects. No one can fire me (except my customers) and I still can code and noodle around with interesting stuff.
It's the ultimate generalization: being able to run a complete business.