Me, I'm having a blast.
First, I declare a last-minute reengineering of most of our front-end code. And I talk my boss and PM into it, as well as a couple of engineers to help out.
Then Monday boss and PM say that we need to get three specific apps done by Friday in order to get the PMO (er, program management office? something like that) off our backs. Since friday's probably not possible, when should we promise them and who should do it? I tell them I'll do it, and give them three nines I'll have it done by friday. I left work at 9pm wednesday. I finished on thursday morning.
Then I went back to The Big Merge. See, we've got several branches of our front-end content. Mainline, which is where most of the work should be happening, a development branch that's being used for Big Important Project, a release branch, which is supposed to be synced from mainline and is what actually goes onto the website, and mainline-variant branch I created to help with the merge process (there are some incompatible-API problems between development and mainline that I need to maintain, while getting the code functionally identical). The problem is that there's been a lot of work happening in both mainline and development, and they've diverged quite a lot. Further, there are changes that have been made in release that didn't make it back into mainline. So, it's my task to bring all the changes, all the little fixes, all the major functionality improvements, everything, down into mainline.
Being not merely a tool-user, but a tool-maker, I wrote a bunch of perl scripts (some of which write other perl scripts) to do as much of the work as possible. Identify files that exist in one but not the other, and construct a script to copy them all over and add then to the right branch. Identify file that are identical and ignore them. Identify files that exist in both, but differ, and write a couple scripts to compare and integrate them manually.
That last one is the bitch. The smallest set I had to deal with was 81 files. Reviewing several thousand lines of diff -y leaves one a little... well, not sane. I started thursday morning. I left work at 830pm thursday, and went in at 1pm today. Left at 7pm. But I finished it.
54 hours for the week, which many of you will know is very unusual. I'm very rarely willing to put in more than 40 hours per week - I don't feel I owe it to the company in any way. They pay me a certain amount for 40 hours a week, they don't pay me more if I work more, so there's no incentive. But this time, for the first time in a long LONG time, I was working on something that was genuinely interesting, challenging, and compelling. Ok, so some of it involved a certain amount of drudgery, scrolling thru diff after diff after diff looking for tiny little differences and deciding whether they matter, but even THAT I can excel at, can do faster than anybody else (certainly anybody available). Every day this week - except to day, actually - I was in an incredibly great mood on the way home, megalomania running full tilt. Today, not so much. Today was more a numbness, an "oh my god i'm donegoodicangohomeandrestzzzzzzzzz"ness.
Tomorrow, I will clean the bunker. And maybe go over to the QFC in redmond and pick up more dwcp, since I hear they stock it. My local stores don't, bastards. I've been getting my supply from Uwajimaya, which charges obscene prices and has pitifully small stocks. And there's a party, which I will get dressed up all pretty for, and make myself smell nice, and go and be depressed at. 'Cause that's what I do when I'm not writing code or hosting a party, apparently.
And life is good.