I took a 10 year excursion into being a guru, but I'm technical now and intend to stay that way. I love programming. I've never been a manager. I suppose that capped my pay, but I'd rather be satisfied with my work. I haven't noticed a pay drop with age, but my experience may not be typical.
The most important factor for me has been to keep coding. It gets harder. I have noticed a definite drop in my long-term memory, concentration, and general cognition, but I compensate by being better at picking important problems, being able to pattern match a large library of experiences, and not panicking. As Miracle Max said, I've seen worse.
I started learning Haskell a couple of years ago, and that has really helped expand my programming style. I still don't like it, but it's good for me. I'm also learning React and the reactive style of coding UIs. That's also a brain stretcher.
Love this. The whole "small team in a big company" thing is great until you realize there's nobody to coach you.
I'm also transitioning to using it to integrate new knowledge. Clip to Evernote. Create flash-cards in Anki, and practice on my commute.
Basically, anything that I have to look up on StackOverflow.
E.g. os.path.relpath, -[NSString valueWithPointer:], -[NSString substringFromIndex:].
My loose heuristic is if I claim to be an X programmer, and some douche calls me out on an API call for language X in an interview, would I feel embarrassed saying I usually just look that up on Stack Overflow.