2) How to avoid burn-out. You say that in your current role you still learn new things. Use that to advantage. Each time you learn something new, hold the mental emotion that is generated when you think '..huh, I just learnt that, Great!' and then exhale slowly and picture the wall mounted calendar showing the days remaining marked-off and grin :-) ... again the point is to use mental imagery to help reduce the distress.
3) Devote some of your out of hours time to coding an itch-that-needs-scratching type project or do some code diving on the source of an app/site/program that you admire/like. Don’t go too crazy on this so think of this as a ‘brain muscle’ equivalent of going to the gym for a workout. In other words, don’t spend more time on this bit than someone would spend down the gym.
H.T.H