Piling on "ideas that stand the test of time":
- Architecture/patterns. Managing complexity, now and in future, is the primary thing that differentiates a "senior" from a junior IMO. Making complex stuff simple is extremely difficult.
- CI/CD. Improving "shippability" and "shipfriendlyness" helps efficiency and allows getting your software to customers faster.
- TDD/BDD/DDD. Ability to distill features and value from vague customer-feedback and domain-expert. Committing that in specifications, and turning that into automated, and measurable setups. the #1 skill to building software that helps your users, IMO.
While there will remain a shortage of developers in near future, the absolute amount of people producing software will grow significant. The amount of software produced will grow significant while existing software will continue to be there too.
The only way to stand out is to provide real value. To provide that fast. To continue providing that. And to remain able to react to the market quickly.
I therefore believe that skills and techniques that allow you to move faster, be more efficient today and in future, is far more important than learning about web3, kafka, rust, go, kotlin, no-code, or the latest JS framework.