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…
Great post -- I want to throw out another option though, which I am exploring myself. Your post seems to, like most posts on HN, be a very "web application" centric view of things. There are obviously vast worlds of software engineering outside of web applications. Embedded/real-time systems, programming languages & tools, robotics, graphics, bioinformatics/computational biology, machine learning, machine vision, the…
I am doing this myself. It's a risk but I think the rewards are worth it!