I started with my current employer 13 years ago in an entry level position.
I have been promoted to a Staff position over that time and have been compensated well, and eventually made into the lead HR developer.
I have given multiple presentations at the Oracle HR technology conferences on products and solutions that I have developed. Unhappy with management, I began looking for a new job about 5 years ago. This is when I quickly found that my highly specialized field did me no favors.
I learned that smaller shops would need my role to include what would be handled by teams at my current job while large shops were generally asking for competence in a more diverse skill set. I decided to move in a completely different direction internally and moved to a new team. Here I learned a new technologies that did not necessarily complement the skills I had from my previous position
My concern is that this is again a fairly specialized field that may make moving to another company a difficult ordeal. I am using my spare time to continue learning new aspects of software development.
What are some good strategies to avoid being pigeon-holed into a narrow specialization?
UPDATE In case anyone was interested -- I left the company mentioned under less than ideal circumstances (see my other question) after butting heads with my manager. I ended up spending some time off but then finding an ideal job with a small company that is moving to a mid-size company and is unsure how to grow their HR technology stack. I am making very good money and doing something I enjoy. Thanks for the great answers.