I was going to add this as a reply to a comment downthread but I think it's too important to bury. The fundamental rule of career progression in the technology industry is to position yourself as a domain expert in something more specific than "programming" . It's very difficult to "own" "programming" in a way where you can use scarcity to drive integer multiple increases of the median salary. It is not as difficult…
The big danger is "owning" some domain that falls out of fashion. You might "own" distributed systems and do great for a time, but then companies start transitioning from that architecture and nobody returns your calls anymore. Also I've noticed a lot of sub-fields like computer vision or self driving cars where there's a great deal of nerd interest but very little actual employment. In fact, I have a feeling that co…
I'm strongly convinced that the less (nerd) sexy a field is, the more money there is in it for a good programmer.
The crappy programmer working conditions in the gaming industry is one example supporting this theory.