Walking Through Hell To Get To Heaven
I still need to buy frames for these.
23 years and a few weeks working for the Space Telescope Science Institute, a year and a few weeks as a contractor, 22 and a couple months as staff, I managed to get a few awards and recognitions for the work I did. Plus some photos with the astronauts. At the moment I’m not sure I have enough space on my den wall for all this. But I will make some if I have to. Maybe take down the dry board and the cork board and put them on the back of the door to my den.
The little DayTimer page there at the bottom is where it all starts. Where everything that was wondrous and wonderful began. Although I would have told you I was doing pretty good already then. No love life, I would never have a love life, but I had work that I thoroughly enjoyed and which made me a good living. I had an apartment of my own. I was able to buy a new car. I was living the life. Mostly. Somewhat. I don’t think Keith had dumped me just yet.
When I became a contract programmer I started using the 24 hour day DayTimer pages as a work diary. The page in this photograph is Monday November 16, 1998…the day my life changed. That was when a Maxim Group recruiter named Rodney cold called me at the contract I was working, and asks if I was interested in some part time side work for the place that operated the Hubble Space Telescope. There in the section for Phone Calls is the number he gave me to call Lee Hurt at the Space Telescope Science Institute. I see that I worked until 6PM that day, with a half hour break for lunch at 12:30.
Rodnay didn’t have to ask me if I wanted that work twice, and would not have even had I not been upset that the work I was doing was not the work I was promised.
I’d been told I would be creating a system to migrate all the local databases of the regional insurance companies that the big one I would be working for had gobbled up into the big one’s master database. It sounded great. But when I got there I found out that system had already been written and put into production and I would just be doing some bug fixing and maintenance.
The guy who had written it had converted to a very conservative form of Mennonite and was renouncing the use of computer technology. He was only staying on long enough to hand the system over to me. When I took a look at the code I was horrified.
It was written in Visual Basic. Okay…I was one of Maxim’s VB experts…I actually taught classes in it for them by then. No problem right? Well…Yeah…this guy had written the backend engine in a very primordial form of Basic…which VB would allow but….why would you? It was awful. His code was full of GOTOs and GOSUBs and the variables were all global and yes, mostly declared at first use, which sadly at the time VB would allow unless you put “Option Explicit” at the beginning of your code. He used friggin’ Numbers for the labels his GOTOs and GOSUBs were supposed to go…I guess to make it look like the Basic of old. His variables were weirdly named. It was excruciatingly difficult to read, let alone follow the program flow.
The only thing I can think is VB was mandated by corporate, and like a lot of degreed programmers he had no respect for what Microsoft had done with it and very little grasp of how to program in it other than everything he’d heard from CompSci professors who hated it. Microsoft gave the language structure and scoping since DOS days. I hadn’t needed to deal with line numbers since the Commodore C64 I started with. I had subroutines and functions (MS Basic had both). I could scope variables tightly and pass them either by value or by reference…although under the hood it was always by reference…when you passed by value a temporary variable was created and the reference to that was passed. It just acted like you were passing by value. And you didn’t have pointers, you had pointers to a descriptor which had the actual pointer in it. You needed to know that distinction if you were doing mixed language programming and needed to throw a pointer somewhere.
The only fly in the ointment was error handling, because then it was On Error Goto, which everyone hated until Dot Net came along and gave us Try-Catch blocks. But you could finesse it with a centralized error handler and some fancy resume 0 resume next footwork.
Anyway…I was appalled at what I saw in there and was immediately primed to get the hell out. The codebase was a rat’s nest. Maintaining it would be a nightmare. Everything I had written up to that point had, in some sense, User Interface stuff, Processing stuff, and Backend stuff, as isolated as I could make them. Even before I heard the term three tier programming and saw it modeled. I considered it self defense. What I saw had everything mushed together in five huge Dot BAS files that had no logical rhyme or reason to them. It was the worst Basic code I’d ever laid eyes on, and by that time in my career I’d seen some whoppers.
Then Rodney called. It was like the gods saw my anguish and decided to cut me a break. He gave me the number of Lee Hurt at STScI and I called and it turned out to be full time work and I begged Maxim to let me out of the contract I was working and go over there. I’m not doing anything creative here I cried. I’m being asked to maintain code I don’t even want to touch without rubber gloves. Every time I open one of those Dot BAS files I feel like I’m walking into the Addams Family house. Get Me That Space Telescope Job!!!!
When the contract boss, who was listening to that conversation just outside the conference room door where I’d gone for privacy, heard all that he gave me the boot anyway and I was free to go.
So I interviewed with Lee Hurt, and then her supervisor at the time, Mark Kyprianou. And I was in. Did my first work there Thanksgiving week. A little over a year later they asked me to come on board as staff and for the next 22 years and 2 months I made the Institute and the Hopkins campus home. It was like the myths say about having to walk through Hell before you get to Heaven.