Fair warning, this is not a description of a typical programmer’s day. I am not a typical programmer, in fact my wife constantly reminds me that my sanity is also questionable, but I do love my job and I live quite far from it … oh and I don’t have any children at home.

6:00 am – wake up, roll out of bed, feed the 3 cats in the house and the outdoor cat that has adopted us, start the coffee machine (at most one cup in the morning …  before I get to work)

6:30 am – wake the computer from sleep (both Mac laptop and pc, I have 2 PCs and 6 Macs at home … don’t ask how many more are in the closet), launch email, begin stretching exercises, leg kicks, shoulders, back, get the blood flowing

7:00 am (or earlier, depending on much stretching I actually feel like doing) – answer emails from China (we have a dev group there), answer other emails. Check on the build that happened on my Mac (using ARD via VPN to work) and make up the list of things to do for the day.

7:30 am – shower, have breakfast

8:00 am – determine method of transport, either bicycle or commute with one or more fellow MacBU people.

8:30 am – 10:00 am – commute to work. I live in San Francisco; work is in Mountain View … it’s a long ride via train or car, no matter how you slice it.

10:00 am – check email, check bugs and get to work.

I have an 8-way KVM switch, one pc, and four Macs at work, plus the Mac laptop from home. Two of the Macs are x86 based, two are PowerPC based. One of the PowerPC Macs is devoted to the building and debugging Office 11. All the other machines have the latest sources from Office 12. Right now my major responsibility is fixing OLE bugs within our source base. Unfortunately the code is has been through so many changes for this revision, first it was moving to Mach-O, then to XCode and finally to Intel, that I need to run the Office 11 debug builds on one machine and compare them to the Office 12 build on another machine. This way I can hopefully figure out where the bug actually originated from.

After two or so hours of debugging and staring at code I have to eat. We’ve got a pretty decent cafeteria here at the campus, supposedly it’s better than anything in Redmond, but never eating in a Redmond cafeteria I’ll let those bloggers from the north comment on that. There is typically a bunch of us sitting outside on the patio hanging out and talking for anywhere from 30 minutes to an hour, then it’s back to work.

I try and make sure my meetings are all in the afternoon, not that it always works out that way, but usually I’ll have anywhere from 1 to 2 meetings a day in the afternoon, except Tuesdays and Fridays which are typically free (any PM reading this blog who schedules a meeting with me on those days is dead!I’m warning you right now …J

1pm – 5pm – typically a couple meetings, working on bugs, answering more emails and overall trying to stay focused on what needs to get done at the moment.

5pm – anytime after 5 I am figuring out how to get back home, I usually leave work between 5:45 – 7pm depending on driving. If you have ever commuted in the Bay Area you know that if you drive, it doesn’t matter when you leave between 5 and 7, you’re still getting home at the same time, especially from the southbay going north.

8:00 pm – 8:30 pm – usually get home around this time, my wife usually walks in the door around the same time, dinner starts anywhere from 9 to 9:30 and we’re done by 10.

Depending on the day, I’ll watch a TV show (I’m a TiVo guy … sorry media center dudes), whether it’s Battlestar Galatica, Eureka, 60 minutes or Jon Stewart, something to relax the brain.

11:00 pm – 12:30 am – answer emails from China, make sure the home printer is working ... never fails that the wife always seems to break the printer every night ... sorry honey but it’s the truth. Get the home machine building with the latest updated sources and hit the sack…

Like I said, I’m not the typical programmer, so my hours vary depending on what I am focusing my attention on at the current time. I should also point out that when I’m not programming /debugging during the day I’m writing papers or doing research for the group on a variety of issues.

As you can imagine some days are more meetings and some days are more debugging/programming (just a friendly reminder to those PMs out there ... don't even think about scheduling me for more meetings ...). Personally I would love to spend all my days just programming, designing and debugging but one thing everyone knows who develops software professionally, you can't escape the meetings or email unless you ... well I haven't figured out how to escape either of those things during the work week, so if you know could you email me!