Thursday, December 31

My turn! 2009 wrap-up

WHAT A YEAR!

First few months of 2009 were pretty ho-hum. Then I unexpectedly lost my fulltime contracting role at the end of May. A week later, I had work on Times Square's biggest, coolest electronic billboard. My consulting work has BOOMED since! Overwhelmingly so! I've gone from nearly a fulltime coder to 25% management 25% sales 25% architect and 25% coder. It's good to grow ... but there are almost always unavoidable growing pains! Great learning experiences however. I miss the days of 100% geeking out a bit, but everyone's gotta move on and experience new things!

Had some family drama. Wish it hadn't happened. Wish I could ignore it. Unfortunately those things simply aren't true. Life happens. Life goes on.

December came in like a lamb and is going out like a lion! Just this week, I considered an offer from Blackbaud Inc. to join their team as a .NET Solution Architect. While I _love_ Blackbaud and the work they do, unfortunately their start date needs were a bit incompatible with my current set of consulting obligations. Today, however, I accepted an offer from Apprenda, Inc., a local .NET startup, creators of SaaSGrid, to come on-board as their Senior Client Services Engineer. VP Matt Ammerman and I will be building out the Client Services unit, working to ensure the best possible customer experience for our clients! The role will be ~50% code, with the rest of the time spent traveling on-site, including internationally, to help clients get off the ground or resolve persistent issues, doing project scope and planning, as well as architecture, type work.

Finally, best of all, I am, after years of hiding in my cave and burying myself in work, in a relationship with a pretty awesome woman. Thanks for being the frosting on the cake of my 2009! Onward to bigger and better!

Thursday, December 24

Every now and then ...

... it's nice to realize that, despite the BS and stress of our daily lives, it's really the people in our life who make it what it is. Thanks to all the wonderful, interesting people in my life! Happy holidays, may they be safe, fun & healthy!

Tuesday, December 15

Well, it happened ...

... maybe when I wasn't looking, or paying attention. Or while doing my best to ignore it.

Some readers may recall a previous entry on professional transition.

I now officially spend at LEAST as much of my time on sales, client relationship management and management of subcontract "employees" as I do on writing code -- and, in fact, the balance may have tipped, and I'm just trying not to admit it to myself.

I love coding. I love getting my hands dirty. Since the age of seven I have loved everything from writing small tools and utilities to make my life easier or better, to building big, complex, shiny, flashing, humming, integrated-at-many-levels enterprise systems.

At some point, I've come to conclude, that has to change. There's only so far up you can go as a "mere programmer." Twenty, 30 or 40 years from now, I don't want to be the "programmer/analyst" who's been working a specific technology, platform or system for 20-30 years without advancement or change in title or role. I also don't want to be at risk for being outsourced -- and no matter how good you are and what kind of experience you bring, as a programmer, developer or software engineer in the business app world, you are inevitably at risk of having your work offshored.

For months now I've been occupied leading a small network of subcontractors on various projects. I've lead small dev teams at fulltime employers in the past but with a manager or architect providing a level of guidance and oversight; I've managed subcontractors in the past, but generally they were pretty independent projects I could spin off, let them work, act as an intermediary between client and subcontractor, but the majority of the project was in the subcontractor's hands.

Not so any more. I'm working several projects that are too big for one person to reasonably design & develop given the existing timelines and demands, and I am the point where the buck starts and stops. I'm finding myself struggling to find pieces that are easy to spin off independently. I'm finding myself embarrassed at the state of some code I have to share with others -- and in one particular scenario, this is a scenario where I came in to perform triage. My code is, as usual, solid ... or SOLID (: but the legacy code is nasty disassembled stuff, and heavy, archaic DB code with LOTS_OF_CAPS_AND_UNDERSCORES. Thing is, when it comes down to it, it's now my system and my responsibility. I'm still embarrassed by that mess, by handing any part of that mess to someone else, even though I didn't make the mess.

I also find myself responsible not just for the system, but for other people, both up and down the ladder. I'm responsible to both my clients as well as my subcontractors, or client employees/contractors placed under my lead. It's one thing to lead a team when you're a fulltime employee, quite another when it's all contractors, all working remote, all third party colo hosting, all spending money out of the pocket of a bootstrapping company founder. At the same time I'm responsible for keeping the people I recruit occupied, paid and happy, and keeping client & subcontractors in balance.

Sometime this week, I expect to hear back about a fulltime role as a .NET solution architect for the professional services arm of a kick-a$$ company down South, with clients nation-, and more and more so, world- -wide. The role is, at most, 25% coding. The horror! ;)

It's a whole different world. I kind of like it. I kind of miss geeking out on code all day ... but there's just no real, longterm future in that. It's a stepping stone to bigger, better things, and here I come.