List three to five goals for the next year. These goals must be SMART (Specific, Measurable, Attainable, Relevant, Time-Oriented). Include both those goals that would help you in your current role as well as those that prepare you for future roles in the organization.

Few work-related things fill me with greater dread than this annual question. And I've gotten it at every job I've ever worked at where there were more than a hundred people.

I'm a programmer. In every position I've ever worked, I was hired on the basis of a skillset I had at the time. Spry hired me because I knew Perl when Perl was barely a year old; F5 because I knew Perl and Curses; Isilon because I knew both kernel development and web application development at a time when both were truly esoteric; Canvas because I knew both Django and assembly language; IndieFlix because I knew Django; Spiral because I knew Single Page Development when that was brand new; CK12 because I knew web development and the EPUB 2.0 standard.

While I was there, other problems became apparent to me: Spry needed me to learn both C++ and Python; F5 needed me to learn Lex & Yacc; Isilon needed me to learn server development; IndieFlix needed me to take my hobbyist-level transcoding skills and go professional; CK12 needed me to learn WebGL. None of those needs were apparent until they were immanent. It's not as if I could scan the horizon of issues and see, "Months from now we're going to discover that this rendering technique won't work on an iPad without WebGL" or "Months from now, we will discover that the application server needs an 'always on' userspace component for consistent kernel communication; I'm going to need to know how to write one of those."

Questions like the one above imply a kind of restlessness that can only be cured one way: with money. The idea is not that you want to be great at your job; the idea is that you want to be great at the job that leads toward ascension, and in most corporations the only ladders available lead away from a lifetime of training and experience toward "leadership." I have deep respect for good leadership, and I hear the siren song that says, "You have all these skills; your duty is to help others achieve the skill level you have."

Given the level of interpersonal skills I have, I ultimately end up wondering: "If they achieve the same skill level I have, does that mean you'll Peter them too?"

As a software developer, I love learning new things. I've been studying a couple of things at random: Category theory, type systems, interpreter cores; basically, a lot of meta around the lambda calculus. Along the way I learned a little Haskell, and learning even a little Haskell made me a much better programmer. The odd thing is that few of those interests map to those of my employer; usually, they don't want esoterica, they want better in the realm in which they work. It has been my fortune to have "significant advanced skills" in customer-facing engineering; it's my misfortune to realize that I'll be working in the same four damn languages for the rest of my life if I want to keep making the same salary.

I have only one goal: Get better at what I do. Everything else is commentary.