It’s a very good thing that my first job after graduate school was boring, because that boredom led me to take a bold step to fix it. My boring software job turned into an adventure and my most enjoyable job.
Ever since I discovered computers and software in college, in 1957, my professional passion has been building software. Despite this, I wrote my Ph.D thesis not on software but about computer logic design (Two-dimensional Iterative Logic), as I discuss in my previous post. This choice turned out to have unexpected consequences.
When I applied for a job at Bell Labs, they wanted me to work in switching circuit theory (my thesis subject), but I insisted I wanted a job in software. Of the several jobs they offered me, only one was in software, but it was not in research. It was on the Nike antiballistic missile system. Despite misgivings I took the job, which turned out to be very boring and, it seemed to me, pointless. There were several hundred programmers writing very interesting and challenging software for the Nike computer, itself a very modern (for its time) multiprocessor system designed at Bell Labs, but I was not one of them. The programmers were contractors from General Electric. My job was to review various design documents. Apparently management considered this a higher level job than just writing code, but designing and writing software was what I wanted to do. I decided that I would try to do something about this, but what? Since G.E. supplied the Nike programmers, that was not open to me. I decided on a bold step: I would create the job I wanted.
My experiences in graduate school had convinced me that writing software using a time-sharing system, which provides on-line access to the computer, is much more productive than batch processing (submitting software written on punched cards). However, back then on-line programming was rare. The Nike software was all being written using batch processing, and it was a massive job.
I had already told my supervisor that I was not enjoying my job, but he, although sympathetic, had no alternative to offer. So I went to him and talked about time-sharing systems. I pointed out that if there was a time-sharing system on the Nike computer, then the programmers could be much more productive. He found this idea interesting. I told him that building such a system was quite challenging. Rather than tackling such a difficult problem on complex hardware (the Nike computer), I said it would be much better to first build a prototype on more conventional hardware. Then we could be much more confident of building a good system on the Nike hardware.
It happened that the computer center was about to obtain a GE 635 computer for use with the MULTICS project, a joint research project by Bell Labs, M.I.T., and GE. MULTICS was not yet available, so the 635 computer, when it arrived, would be underutilized. I persuaded my management to let me build a time-sharing system on the GE 635 as a prototype, to be followed by the production system on the Nike hardware. They agreed.
I was authorized to hire seven GE contractors to build the prototype time-sharing system. Since the Whippany location where Nike was crowded, Bell Labs rented space above a nearby strip mall and there I and my seven GE contractors set up shop to build a time-sharing system.
In retrospect I am surprised that Bell Labs agreed to let a brand-new employee assemble and lead a team of programmers to build a state of the art software system. Today it would not be so surprising, but back then (mid 1960s) it was very unusual. The project was great fun, it was completed on time and on budget, and my career took off. I describe the project (the Nike TSS) in my next post.
The moral? Be bold. Thank goodness for the boring job that led me to this bold adventure, a perfect example of “nothing ventured, nothing gained.” If I had not taken this bold step it is unlikely that I would have had such an interesting career and it is highly unlikely that I would have been involved in the invention of UNIX.
– Rudd Canaday (ruddcanaday.com)