Sunday, September 24, 2006
First Contract Gig
We finally got my contract squared away, so since Thursday morning I've been working. I'm not going to reveal the identity of my client, but I'm working in the Times Square area of NYC.
They have me staying in an apartment in Jersey City for the three-and-a-half weeks of my onsite visit. It's a nice place: it's fully furnished, with Internet access and DirecTV, and from the 35th floor I have a good view of lower Manhattan, the Statue of Liberty, and the Verrazano-Narrows Bridge. There is a grocery store and a shopping mall within walking distance. Right now, I'm in a two-bedroom apartment, which was all that was available on short notice, but I'll be moving to a one-bedroom apartment in a week.
Staying in a nice apartment instead of a hotel is a welcome luxury. It's cheaper than staying in a hotel, so I don't have to feel guilty about wasting the client's money.
My commute between the apartment and the office should take 45-55 minutes. I say "should" because I've gotten myself lost on every travel attempt so far. It's hard to tell north-south-east-west in the middle of Manhattan, especially when it's dark, so I've gone a block in the wrong direction a few times. I had trouble finding the PATH train station my first night—you'd think they'd have signs or something to help visitors, but you have to be right on top of the station to see it.
The client has a long bug list, and a new release scheduled for a few weeks from now, so my job will be to help whittle that list down.
For the past two days, I've been fixing "repainting" issues: that is, bugs that cause the window to not properly display all its elements. There is also some annoying flickering that occurs when the window is resized. I'm using Parallels on my MacBook to do the Windows stuff, and I was initially concerned that the emulator might not replicate the graphical issues. But Parallels emulated the problems perfectly.
A really nice thing about using a virtual machine emulator like Parallels is that, after I finish working with this client, I can easily go back to a clean Windows install without the particular customizations needed for this client's development environment. And then if I work for this client again, I can just reuse this configuration. From now on, I'll use a virtual environment for every project.
A downside to using the MacBook is that, whenever I have some problem running something or building something or connecting to a server, people assume my problem is due to using a Mac instead of a "real PC." So far, none of my problems have been Mac-related. Maybe I need to cover up the Apple logo and other identifying features, to make it indistiguishable from a "real PC."
One of the first things each member of this team has said to me is "This code is really horrible. I hope you can make sense of it." That's what everybody says, for every job I've ever had. The dirty little secret of the software industry is that we all know that everything we do sucks. (A dirtier secret is that there are a lot of people who don't realize their stuff sucks.) This bothered me a lot when I was younger, but with maturity I've come to accept it as the way things are. I'll just try to make improvements where I can, and try to not make things any worse.
There is a good place that I can recommend that is probably within walking distance of where you work...
It's a sit-down pizza place in an old church on 43, 44, or 45th Street between Broadway and 8th Avenue. I think it's called "John's Pizza".
Whenever I go to Manhattan, I always try to figure out which way is North. I figure out if I'm on an "Avenue" (N-S) or a "Street" (E-W) and use the sun to figure out which way is North (Cub scout training pays off in the urban environment). From there, in Midtown, it's mainly a matter of knowing your numbers and a half-dozen street names (Park, Lexington).
Frankly, compared to warren of 9,000-different "Peachtree" streets in Atlanta, New York should be a piece of cake.