Apologies ahead of time if this comes out sort of stream-of-conscious...

The years seem to be going by a lot faster these days.  Maybe it's a touch of emo having turned 30 in February, maybe it's concern for my own mortality and the legacy I leave, maybe it's concern for how I see the next 30 years shaping up, maybe it's all or some of that and more.  Lately though, I find myself thinking a lot about my career and the future thereof.

I fell into this development thing in the late 90s, having always had a passion for computers but never really the desire to do them professionally.  That all changed by happenstance, and 10 years later I consider myself to be fairly successful, having built a career from nothing.  I've always pitched myself as kind of the unofficial spokesman for the "in the trenches" developer, not necessarily the morts (if they exist) but the guys that are gutting it out in corporate IT development.  We're a different breed from you package and shrink-wrap guys.  Made of different stuff.  Having just finished a project that consumed my life for almost 2 years, I find myself wondering how much longer I can do this.

Can I really see myself doing what I'm doing today in 5 years?  10?  If you haven't asked yourself that question and wondered where you were going then you are either very young or in denial.  I don't mean the young thing as a dig at you, it's just that once you're around for more than a decade you start to consider how you would have seen a 30+ guy on your team when you were 20.  Larry O'Brien has a post about this (and he's gonna scoff at me being younger than him and worrying about it).  You may shrug it off and say you respect anyone with skills, and so do I, but the bottom line is I know how it is, and I wonder what's going to happen if I'm looking for a job when I'm 35, 40, or older.

In the time I've been blogging (April, 2004, seems so long ago) I have learned a great many things, and become friends (virtually anyway) with a great many people, all of whom are amazing developers or technology people in their own rite.  Also in that time I've seen many of them go and join Microsoft, a couple of which are guys I got pretty close to when working on Project FAZR.  Some have gone indie and are making a solid go of it.  I have guys on my MSN list that are authors of books on my desk.  I know a bunch of guys that are just filling their time presenting at codecamps or conferences or user groups.  And every  time I recognize these facts, or another one joins MS, or another one makes MVP (only to relenquish it later after being hired by MS)...I get that little twinge.  You know the one.  The "what the f*&% am I doing wrong?"  "why am I not moving forward in leaps and bounds?"  "am I in the wrong line of work?" and those other little demons of self-doubt that make you question yourself to the point of panic or depression.  It's not that I begrudge anyone else their success, nor do you.  It's that we are now questioning our worth in this industry, and wondering what the future could possibly hold.

So that fear starts to creep in, along with others, like keeping up with the newest stuff so you can be on top of the game (but somehow you gotta try to keep up with your day job too, and it's a rough road to do both), and you start to maybe think about taking fewer chances, or switching things up to something that feels like it's more long-term friendly.  You start to think that you need to find a company that will always have development work, and will keep you until the day you die.  You start to think that maybe your time to create or join a startup is past, because if it fails and you're looking for work, maybe you aren't good enough to get in anywhere.  It's like that old Dilbert where someone quits and interviews for their old job and finds out they aren't qualified to do it.  Or maybe you think "hey it's not too late to go to Med school, and I know some old-ass doctors, so there's age security".  You think you're not good enough to start a company, speak at a conference, write a book, or work at Microsoft.  Your ideas are bad.  You don't know enough.  You don't have what it takes.  But really, you're mostly thinking that you should have progressed beyond where you are.  That somehow you should be reaching some sort of endgame (to borrow from MMO parlance) by now.

I guess to get where you want to go you probably have to have some idea of where that is.  I think that's MY biggest problem on this topic.  I have the broad strokes but not the fine points.  Sure I'd love to work at Microsoft but is that really my ultimate goal?  I love what I do now, I'm damn-near indespensible to my company, and I guarantee if you ask anyone there C-level and down they would tell you I've made a significant impact.  I love that.  But when you finish a huge internal project you have to wonder...do I really want to maintain this code the rest of my career?  Should I do something else?  I think that's where I am now.

So what is that endgame for you?

Is it working at Microsoft, Google, or some other developer Mecca?
Is it writing books or becoming well known for something?
Is it putting some amazing code out there (open source or otherwise) and becoming a name that every developer knows?  (and eventually getting acquired by Microsoft :P)

Whatever it is, you need to take steps to identify it.  I'm not here to lecture you on goal setting or time management or anything else really, because I suck at that stuff.  But I do know this to be a fact: without directions it's purely by chance that you will end up in the right place, and the odds are stacked against you.

So now I'm going to impart what to me seems like good advice to any of my fellow lifers who are struggling with similar issues.

  1. Identify your endgame.  Know what you define as a successful career, then start planning the path.  If you just keep trudging ahead, you're going to be asking yourself these questions every birthday, new years, or annual review.  It doesn't have to be super specific ("I want to be a Technology Fellow at Microsoft") so much as it has to be an area of interest.
  2. Go for it.  Don't be afraid. Don't give in to the fear. Good developers land on their feet.  If you think you want to start a company, do it.  If you want to work for Google, start preparing yourself and actually go try to get an interview.  Don't let fear of rejection or failure slow you down.  You've made it this far, you probably are good enough to go further.  And if you're not, better to find out now while you have time to adjust course.  More succinctly:  Don't choose unhappiness over uncertainty.
  3. Don't depress yourself by comparing yourself to Scott Hanselman (sorry to pick on you Scott, you're just the latest new 'Softie) or whomever else you think is doing so much more than you are.  They're doing that much more because they've probably done steps 1 and 2 (and 3 for that matter).  You are your own person.

That's all the advice you really need on this one.  I have a friend that tells me I'm excellent at giving advice and terrible at taking my own.  I'm going to work on that.  Maybe I'll do these two steps as well.

I'll leave you with two lines from Fight Club to think about the next time you're worried about where your career is going and find yourself doing nothing about it:

This is your life, and it's ending one minute at a time. - Do something about it.

You are not your job. You are not how much money you have in the bank.  You are not the car you drive.  You are not your fucking khakis. - Don't let it consume you.

Take the wheel and drive people.

Tags: