A Different Kind of Programmer

Early on in my career I decided that I liked working with computers that were working correctly better than fixing ones that weren’t. I had already worked as a programmer professionally while I was in the Army and at one other job. I had taken the job as a technician because it was a big raise in salary and had much better benefits. When my new employer found out that I could program, after about six months of working for them as a digital repair technician, they immediately moved me over to programming full time.

I was a rather rare kind of programmer at the time in that I understood computer hardware while at the same time knowing how to program. This landed me in jobs that were known as system programming. System programmers write software that interacts directly with the hardware like operating systems and device drivers. In my case, I wrote network software. This was in the time before the internet when Bill Gates had sworn that computers running Microsoft Operating Systems would never be connected into networks. That was something that big companies did with their big computers. He also said that no one would ever need more than 640 Kilobytes of memory on a PC.

I wrote programs that copied files from one computer to another across the network. This was before TCP/IP became the common software upon which the internet was built. In those days, there were significant differences between the way that files were stored on different operating systems. In particular, DEC computers running the VMS operating system had lots of optional attributes that described files in their system. The Unix file system on the other hand had relatively few. The problem arose when you transferred a file from VMS to Unix. You lost information about the file if it used any of the optional attributes that VMS had and Unix didn’t. Then when you copied it back to the VMS system, it was difficult to restore those attributes so that the programs running under VMS would be able to use the files properly.

We worked for months creating rules that inferred what kind of data was in any given file and what the intelligent defaults were when we created a VMS file from a Unix file. I didn’t realize it at the time, but I was actually doing rudimentary artificial intelligence programming. I enjoyed doing that work a lot.

Years later when I came to work at my current employer, they were using the file transfer software that I had written on their computers. I felt proud of that software but not enough that I wanted them to know I had anything to do with writing it. I was ready to move on to new challenges.