Archive for the ‘Job Experiences’ Category

Fascinating Facts My Coworkers Don’t Appear to Know:

  1. Cubicle walls are not infinitely rigid membranes, but are in fact quite flexible.
  2. As well as transmitting motion, cubicle walls also don’t do much to stop sound.
  3. The other side of the cubicle wall that bounds a hallway frequently bounds a cubicle that contains a human being. Sometimes that human being is actually trying to work, or at least feign it convincingly. Flexing his or her cubicle wall by leaning against it, punching it or grabbing the top and shaking it or having loud hallway meetings just on the other side of that cubicle wall may be distracting to him or her and make it hard for him or her to accomplish their goal of working or feigning work.
  4. If you are unable to stand on your own two feet for the duration of your loud and distracting hallway meeting, our employer helpfully provides chairs that you can sit down on. You will find those chairs back at your cubicle, or at the cubicle of the person you are talking to, or in our many meeting rooms, or in the break room. They are not provided in hallways, for reasons that might become apparent if you carefully read the previous points.

Just thought you’d like to know.

Years ago I was working on Kodak’s Cineon system, an innovative system for digital post-production of movies. It was a great gig, but unfortunately Kodak pulled the plug because there were too few post-production houses doing digital work to support a competitive marketplace, and because some really questionable business decisions were increasing the development costs. I still think they should have held on a bit longer until the market caught up to us, but that’s life.

One of the projects I worked on was a “clip editor”, where the users got a view of multiple film clips (ie. different shots from the same scene) and they could cut them, shrink or expand them, slide them up and down relative to each other, and then define the transitions between them. Our competitors called theirs a “virtual light table” or something like that. Ed Hanway was doing the guts of the program, and I was doing the user interface. I liked working with Ed - he’s one of a handful of people I’ve worked with over the years I’d consider as good if not better than me, and easy going and easy to get on with in spite of it.

I had the basic outline for what I wanted the clip editor to look and work like, but I felt that my own aesthetic sense was lacking (which you’d agree with if you’ve seen the way I dress), so I wanted some feedback on the aesthetic aspects of the design. Kodak didn’t have a Corporate Design and Usability department like they do now, or if they did nobody was telling me about it, but since the Cineon tech support department was staffed by people who edited movies, I figured they’d have some artistic instincts.

Oh quick aside here - our tech support people often pitched in at customer sites when they were using our software on big projects, which meant that you could always tell the Cineon people at a Rochester movie theatre, because we’d always wait for the very last credit and cheer when it had one of our people’s names.

But I couldn’t get anybody to answer any of my questions. So I figured I’d force the issue by choosing two of the most hideous colours I could find. I think I chose two that had pre-defined colour names in OpenGL, but I toned them down a bit because the people using our software always seemed to do it in dark rooms and the rest of our interface was in shades of grey because of that. I think I ended up with a sort of mauvey-pink and a light limey-green. I knew *somebody* would have to complain about these colours, and then I could ask them what colours they thought it should be.

Oh, another aside - the program had been started at Kodak’s Australian office, and then moved to Rochester, and then we had some code contributed by the office in London England, and then half the development moved to San Francisco for no good reason. One of the things that led to was continual problems with the spelling of the words “colour” and “grey”. You’d find both Commonwealth and US spellings of both those words in method names, and sometimes both variations in the same method. The method name confusion was the worst - you’d write your code to call “adjustColourSpace3D” only to have the compiler bitch because you meant to call “adjustColorSpace3D”.

But I never got any complaints about the colours, so that’s how they went out in the release. And a year or two later, somebody brought some literature back from our big trade show, ShowWest, and lo and behold one of our competitors had copied my hideous colour scheme in their virtual light table.

A few weeks ago I was telling this story at lunch, and one of the other former Cineoners who got to go to customer sites mentioned that the customers had loved my hideous colour scheme because of how well it stood out. Huh. Who knew?

I guess the secret to good user interface design is to purposely make something that offends my senses, and I’ll come up with something that normal people like.

Evidently it’s company policy that working at home must be requested 24 hours in advance, in writing. So if I find myself unable to come into work for some reason, they want me to stay home and do something else rather than doing useful work on our project. Well, I’ll miss the money, but I think they’re going to miss the work more.

When this morning’s alarm clock went off, the radio was saying that Vicki’s place of work was closed because of an overnight ice storm. I looked outside and there was a good half-inch of clear ice on the trees, roads, and my car. And the local news web sites said that the state police were telling people not to drive if they could avoid it.

So I thought about what I’d be doing if I went to work, and it was just working on design documents. I have most of the documents I needed at home, so I thought “screw it” and decided to stay home.

I wanted to email people to tell them that I was going to do that, and I only had a few of their addresses. So I emailed the ones I had, and one of them emailed my new official direct supervisor (even though I really get my job assignments and direct supervision from somebody else, but she signs my time sheets).

She wrote me back. She’s evidently mad that I didn’t follow her new procedure, and phoned her for permission *before* I decided to stay home. In the past, I’ve always been trusted to work at home if I had work that could be done at home, so this seems like a real lack of trust on her part. But then again she’s new to the project and doesn’t know any of us that well - plus she has little to no day-to-day contact with us developers, so maybe she doesn’t know us well enough to know who to trust.

So instead of having a nice day at home where I could work productively but in a relaxed environment, I had to struggle to produce work while worrying if I’d just jeopardized my job.

Just for the record, I got more work done than I would have if I’d been at work.

My contract has been extended for the year. I can start breathing again.

In 1992, I worked for a company called GeoVision. I’d worked there for 6 years, but they were having financial problems. The previous two quarters, the end of the quarter had been the time when they announced layoffs. And just like the previous two end of quarters, the bean counters from both the Ottawa and Denver offices were huddled together the day before, and this time they came around with a list and told everybody whether they had to go to the 2pm meeting or the 3pm meeting. I was invited to the 2pm meeting. It turned out that everybody invited to the 2pm meeting was laid off, and the 3pm meeting was to announce that they’d had to do this to ensure the continued health of the company (it didn’t work - 6 months later they were out of business).

Now flash forward to 2006. I’m on a contract at $EMPLOYER. I’ve been there for 4.5 years on this contract, and I was in a previous contract in the same office for 3 years. $EMPLOYER, as everybody knows, has been shrinking for decades. And they announced that our group (Entertainment Imaging) has to shrink by 10% (they’ve offerred the voluntary retirement package (called “getting tapped”) to certain eligible job categories, then next year if they haven’t met their targets they’ll fire some people) and also it’s becoming part of the Film Products Group (which really inspires confidence that our digital project is going to be a high priority). And then today, just to make my heart rate soar, they announced that there are problems extending our contracts, and the boss set up a series of meeting to “talk with each of you on Friday regarding our decision to extend your contract or not for 2007″. And I got one of the early ones.

Can you tell I’m not going to sleep well tonight?

I wonder how long this image will continue to be there:

I’ve been exhausted for days now - I feel like I can’t keep my eyes open. It’s accumulated lack of sleep and stress from this project I’m on - I’ve put in over 55 hours a week for about 2 months now.

Last night I went to bed early to try and get some rest. But I found myself lying in bed awake in the middle of the night, worrying that if I didn’t get back to sleep soon I’d been even more tired and wouldn’t be able to finish the work I promised to get finished by Monday.

Believe me, that’s not conducive to getting back to sleep. It’s a great cycle of stress leading to lack of sleep leading to stress.

I want my weekends back. Although the first weekend I get off after this project is done will probably be spent comatose.

Still muddling along on the project mentioned in Rants and Revelations » Stress, stress, and more stress. My boss wants my bit to be test-able and demo-able by the first of the month, and I’m not sure I can do it. I don’t think the other bits are going any better. The Chinese team have delivered something, but we can’t test it yet until my bit and Tony’s bit are finished. Kris is working on a bit that we were going to farm out to the Chinese team, but we decided it would be faster for him to do it than to try to explain it to them. It seems that in order specify the requirement in sufficent detail that you could just hand it over to a foreign team, you need a formal language. And the formal language we know best and can produce fastest is Java.

In added aggravation, just as I was turning into the parking lot at work this morning, my muffler started dragging on the ground. A quick examination seemed to indicate it was just the strap hangar broke, which is exactly what it turned out to be. Cheap, but time-consuming and annoying.

Meanwhile, the peridontist is going to be fixing my front teeth this Saturday. He says they have to make an incision in the front of my jaw, scrape out crud, and put in something to make the bone grow back. He says I won’t be able to “incise” for a couple of weeks.

Saturday is also the day when we have our MoveOn.org Call For Change party. I have a bit of a mental block against making phone calls to strangers thanks to an incident from my childhood, but maybe I can just play host.

On Monday, my 1U server goes off to the colo. I just got the network settings, so sometime on Sunday I have to take down the server and set up the networking.

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.

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.

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.

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.

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.

So after a titanic two day struggle, we’ve got my home account moved to a server with a slightly newer version of NFS, and I seem to be running again. Except I don’t have Lotus Notes or Microsoft Office. Which, unfortunately, I really need in spite of the horror of having to use them on a daily basis. It seems that when I decided to blow the machine away and re-install, I didn’t save a precious little “id” file that allows me to log into the Lotus Notes server. The help desk form for requesting help for Notes requires you to specify what your Notes server is, and shows you how you can find it on your Notes screen - which of course I can’t do because I can’t get into Notes without this id file. It also promised that they’ll get back to you within three business days. Rob has warned me that there will be two more hurdles:

  • First they will refuse to help me because they don’t support Linux, and/or because Notes doesn’t run under Linux. Evidently the fact that everybody in our office runs it under Crossover Office under Linux is just a figment of our imagination. Pointing out that this is just an authentication issue and not an OS issue evidently isn’t enough to get them to cough up this file without a fight.
  • Even after they relent and send you the file, they don’t actually send it to you, they send it to your boss. And since my boss never reads his email and his secretary can never be bothered to send me the information when I try to recover my Windows network password (too busy with eBay and Solitaire), I’m not holding out great hope of getting this either.