Friday, March 6, 2009

The Spark

Remember that project I mentioned in my first post? Been six months since I looked at it, lost my zest for academics, etc.?

I just spent about 20 minutes staring at a screensaver that uses genetic algorithms to evolve a blocky "creature" that moves across a map, and the whole time I was thinking about how much it could be improved by the techniques I was planning on using in the project.

I can't let that project slide. A Master's degree in computer science with a specialization in Artificial Intelligence would be the vindication of my career choice. It's the opposite of the tedious labor I've been performing so far, and that degree on my resume is going to help me get out of here to more rewarding projects.

Wednesday, March 4, 2009

Bitch work

According to the recruiters who came to my school, software development at Microsoft gets done by three disciplines working together: Program Managers, Software Development Engineers, and Software Development Engineers in Test.

Program Managers, they're quick to point out, are not "managers" in the banging-the-secretary sense of the word. They're nobody's boss; they manage projects, not people. Making sure the schedule is up to date, coordinating with other teams, etc. In other words, all the stuff us coders don't like to do, these guys get done.

SDETs are the quality-control. Just because there's a separate "testing" discipline doesn't mean developers churn out buggy-ass code and have someone else clean it up. We're still reasonably sure everything's working as we intend it when we hand it off to test. But what if you've got multiple applications open, and our application is the one in the back, and this dialog is open, and you mouse over that button? Is it clickable? Yes, it is, and no, it's not supposed to be. Who's OCD enough to even think of trying that? And how much time per day can you stand to sit and think of things like that? Five hundred million monkeys customers banging on their keyboards would have found it. And so did our SDET.

I was hired as a Software Development Engineer. I shape the program's behavior to my will. From an empty code file, I create Something out of Nothing. I imagine that an Edge from an alternate reality where I'm a Program Manager would call me a "code monkey".

My point is that it takes different kinds of people to make a project work, and theoretically we were all hired to do the type of work that we prefer to do. I couldn't do a PM's job, and as much as I wanted to work for a bona fide Software Giant, if they'd offered me a job as an SDET I've have turned it down. I don't want to pick things apart; I want to create.

My first assignment was to see what happens when we introduce X; find and fix all the problems that show up. Next, help out on project Y by writing some unit tests. In other words, first I had to go on a bug scavenger hunt through the most poorly documented codebase I've ever seen, only changing a line or two here and there to smooth out the rough edges where it interacted with the new technology. Then I had to churn out code to put someone else's code through the paces in the most monotonous way possible. I've been there for six months and I haven't made anything yet! I auditioned for a Broadway show, and somehow wound up as a stagehand. My morale is low, and my productivity is keeping pace with my enthusiasm.

As for what I'm doing to move myself out of the rut, next week I'm adding improv lessons to my list of things I do outside of work. I was improving twice a week in New York, and I miss it. Hopefully an improved social life will make a less than stellar work life more tolerable.

Keep on keeping on,

Tuesday, March 3, 2009

The average blog has one reader

As of this writing, this blog doesn't exist.  That means that you're most likely looking through the archives.  You want to know where I started out.  Well, here it is.

I went to a tech school out in New York.  It was the first and only college I applied to, and I stayed there for six years, working through all the course work for a Bachelor's and a Master's degree in Computer Science.  The BS (no pun) is done, but before I finished the final project to get the MS I took a job at Microsoft in Redmond, WA.  I fully intended to finish the project once I got here and got settled, but I've barely looked at the thing in the last six months and, frankly, I've lost my zest for academics.  My biggest concern is the damage the not-quite-done MS is going to do to my resume when I leave this job.

So here I am at Microsoft.  Salary?  Great.  Benefits?  Awesome.  Health insurance?  Best ever.  Job satisfaction?  Eh...

I'm working on possibly the least interesting product Microsoft makes.  It's a useful product, high quality, I highly recommend it, but it's no fun.  How can I stay interested in this, especially when they have me fixing bugs and writing unit tests for other people's code?  Honestly, of all the things the recruiters told me about working for Microsoft, the one that was at the front of my mind when I took this particular position was the policy of allowing employees to move to a different job within the company after 18 months without needing your manager's approval.

So, I have a decent but boring job.  You work to live, not live to work, right?  It's the social life that's important.  Well, that's a weak point of mine, too.  Like many people at Microsoft, and at tech schools in general, I don't relate as well to people a I do to a computer.  I'm slow to build a social life, and pretty much the only get-out-of-the-house activity I have regularly is going to the casino the play poker.  I win money, but that's only because the average low-limit Texas Hold'em player is absolutely terrible.

And the funny part?  I don't even like Texas Hold'em that much.  It's just that it's the only game in town, no matter what town you're in.  7 Card Stud is much more interesting and challenging.  Evidently that's what scares people off from it.

So this is where I am now, March 3, 2009.  Job satisfaction low, social life negligible, and chance of getting laid somewhat less than zero.

This blog is the story of how I turned my life around.