Stress, stress, and more stress.

I’m a contract programmer, a damn good one. I’m on a project that is based in Rochester NY, but which also has a programming team in China. Also, because I got this job through personal contact and reputation rather than through a headhunter, I’m very well paid. I’m sure it isn’t an exaggeration to say that the whole China team probably costs about the same as I do.

So my continued employment is probably dependant on being more productive and better than a whole team of Chinese PhDs. And so far, I’ve been doing that. Often the code they produce shows a lack of understanding of the tasks they’ve been set, or of the approach that we’ve been taking with the rest of the code that they have to work with. Although, to be perfectly honest, the biggest factor keeping me ahead of them is the fact that our higher ups are not capable of producing a clear set of requirements – but I can sit down and talk to them and build a clear picture of what is needed, or talk to the other developers and kick stuff around. I can even go to customer sites and talk to the end users. But even so, I feel a continual breathing down my neck.

Right now, we’re on a big push to produce some major new code for a new customer. I’ve been working my ass off. My code “lives” in between the user interface one of my fellow local programmers, and a module that is being produced in China. Fortunately, by working 50-55 hours a week for the last month or so, I’ve managed to keep ahead of both of them.

I’m going to see my daughters this weekend. Life events have conspired to keep me from seeing them for a while, and I need to see them this weekend. Unfortunately, I also have to do a bunch more work this weekend. Assuming I only work my “normal” 10 hours on Friday, I need to do at least 5-10 hours this weekend. That’s going to cut into the time with my daughters a bit.

I’ve got a very sore front tooth. I have a referral to a peridontist about that, since the gum is receeding so far it’s exposed much of the root. But I haven’t had time to go. And this evening walking out the car, my knee locked up in an extremely painful manner – it does that every now and then, and there’s nothing I can do about it except try to hop on the other leg. And now, right now, just to top it off, I can feel a bit of soreness swallowing. Which means that by Monday I’ll having a full grown cold, which means my productivity will be halved.

And why are you making this my problem?

I had to go into work today (Sunday) to investigate a couple of bugs. Couldn’t reproduce either of them, unfortunately, But that’s not the point of this rant.

The building I work in is ancient and poorly maintained. It’s also an industrial/manufacturing building at heart, with offices sort of grafted on as an afterthought. Really, it’s horrible. Between the annoying desk-shaking thumps I’ve mentioned before, the chemical smells, and the notices posted all over the place warning about asbestos, I feel like Great Big Sea’s “Chemical Workers Song” – “every day you work here you’re two days nearer death”.

It was also very rainy this week, so Thurday and Friday marked the appearance of several new buckets catching water from drips in the ceiling. One of those buckets was in the main hallway, where water was coming through acoustic ceiling tiles. The tiles were bulging and discouloured. Today, the inevitable happened – they didn’t fix it, and so one of the tiles had disintegrated and collapsed into the hallway. Plus the drips are in different places than where the buckets were, so while they were lucky that the tile collapsed didn’t knock over the bucket there was dirty water all over the floor. Since I had the only car in the parking lot, I thought I’d do the right thing and report it so that somebody can come out and clean it up before somebody trips over it.

I called security, because I doubted maintenance would be around on a Sunday. Over the next couple of hours, I got called back by two different people, both of whom called and left messages when I was out of reach, and then called me again when I was – Evidently security had called people, but given them my phone number as a contact. First guy to call me was an on-call pipe fitter – I told him I didn’t think it was a pipe, I thought it was a roof leak. Then another guy from maintenance called and wanted to know all about the details, and whether I thought they could wait till tomorrow or not. How the fuck should I know? Why don’t they send out a maintenance guy to look at it and have him decide?

All I know is that if it was happening in my house I’d want somebody to come out and deal with it right now. And if it had been reported to me by somebody working in my home, I would have come home to have a look at it rather than grilling them about the details.

Today’s excitement

Ok, this is not what I wanted for today: 13WHAM-TV || Rochester – Police Searching Kodak Site for Armed Man

There were about a brazillion cop and Kodak Security cars out front, and lots of rumours flying around. When the rumour came that they were shortly going to start evacuating the building, I decided to beat the rush and leave right away.

Update:
Ok, that link went away. So I’ll just paste in the current story

No Gun Found at Kodak Park

(Rochester, N.Y.) – Police did not find an armed man at a Kodak complex on Mt. Read Boulevard. Just before 9 a.m., Kodak security got a report of a person carrying a firearm at Building 205. After police found no apparent threat, Kodak evacuated 1,100 workers from Building 205 and the adjacent Building 214.

Kodak workers will get full pay for the day, and are expected to be back on the job tomorrow.

Kodak and police are still investigating whether someone brought a firearm into the plant.

Building 205 is a very large building with industrial and office parts, and I’m sure somebody could hide something there pretty easily. On the other hand, people carry a lot of stuff in and out of the place and I’m sure somebody bringing a long object like a rolled up movie poster could be mistaken for a gun.

Still scratching my head.

I’m still working on the problem in Rants and Revelations » That’s a head scratcher.

I wrote the thread spawning test program, and it ran 18,000+ iterations overnight on a test machine without the slightest hesitation. I pored over the code to see if there was a “Dining Philosophers”-style lock contention issue. I examined the logs for other programs on the system. And I’m still no closer.

I have a horrible suspicion that the lock up is actually in the database code somewhere. And also, that instead of using threads and locks to make sure I respond to the events quickly but don’t do more than one event at a time, what I really need is an job queue, so I can monitor if a job is taking too long, just kill it and start the next.

But of course since I don’t know where the lock up is actually happening nor can I reproduce it, I’m not sure how to know if my changes are going to fix anything.

Has it been two years already?

Well, it’s been approximately two years since my last HSE (Health, Safety and Environment) orientation for contract employees, so it was time to renew.

They’ve moved it even earlier, to 7:00am. And it is just as boring and unapplicable to my type of contracting as I remember it. But at least the guy giving it this time was a much more positive person.

I had to get up much earlier than usual, and get out of the house promptly without checking my morning email or anything. I had hoped that I’d be able to catch up with my Treo in the HSE training, but of course they hold it in a basement with no cell phone coverage.

But that wasn’t the worst part. The worst part was that I had anxiety about getting up earlier than usual so I kept waking up in the middle of night to check the clock to make sure I hadn’t missed the alarm. I swear, I remember checking the clock about 3 times between 2:00am and 2:30am, and then again a couple of times between 5:00am and 5:30am. But of course when the alarm did go off at 6:00am I hit snooze, forgetting for the moment that I didn’t have enough buffer time in my schedule to allow for snoozing. Fortunately I remembered a minute or two later.

You know, I love this job. I bitch about my cow orkers and management every now and then, but that’s true of any job. But the work is challenging, it’s interesting, and it’s in a field I like (ok, it’s not GIS or aviation, but it’s close), on a language and OS I like developing on. And it pays more than my previous job, which means I don’t have to ask myself “can I afford to go flying this month” or ask my friends for money to help run the server that does our shared mailing lists, but most importantly it means we didn’t have to ask “how are we going to afford to have three kids in college at the same time?”. Being bored for 45 minutes at a god-awful hour of the morning once every two years is a small price to pay for that sort of freedom.