All very good points. However, if you do (1) (Look for opportunities at work), you don't have the time and energy for (2) and (3) with the regularity needed for making serious advances. At that point, you have a well-paid, non-stressful, truly full-time job. I would skip (1) and keep mostly (3) (well, that's what I do, more than advice. A pat on my shoulder, if you will). They are not paying you more, the more you do, the more troubles, stress, and annoyances you call in your direction, and when the tide turns, it is not that they are looking at some code review you did or improved documentation you wrote to keep you onboard.
As I like to say: there is no second life, the only one that was build was virtual and "failed".
Yeah I didn't mean to suggest doing all 1, 2 and 3. Pick one. Do something for at least half of your idle time, and do it with purpose.
> when the tide turns, it is not that they are looking at some code review you did or improved documentation you wrote to keep you onboard.
I mostly disagree, but it depends on your employer. As a senior engineer, I very much have the opportunity to differentiate myself and protect my position longer than others. I lost my easy job to lower paid, lower skilled engineer because I chose not to put in the work which would have defined my role as a more difficult one. It was easy to replace me when the time came because I allowed the scope of my role to shrink to menial tasks which did not require much thought.
As I like to say: there is no second life, the only one that was build was virtual and "failed".