Tuesday, September 28, 2021

A Life at the Keyboard

Having recently retired, I find myself looking back over the past forty-five years in the tech industry, including over thirty as a software engineer. It's been a great ride, with a few unexpected turns.

First of all, I didn't start as a software developer. When I went to college in the seventies, there was no undergraduate degree available for Computer Science at the university I attended. As such, I decided to go with one of my first ideas in High School: Physics. It turns out this was an excellent choice given my long term goal of doing computer software development.

However, maybe I should back up for just a bit and explain why I had an interest in CS in the first place.

Revolutionary Ideas

Growing up, I had an immense interest in science. I asked for and got a small telescope when I was young and spent hours at night with my friends marveling at the Moon and just making out the rings of Saturn. The tech industry was just getting started in the nineteen-sixties. I don't even think the term high-tech was in use yet. However, there was a fantastic television series that I watched with great interest, Star Trek.

You need to understand what was going on at the time, and the radical idea that Gene Roddenberry had come up with. In the middle of the cold war, the threat of nuclear destruction or societal breakdown seemed almost inevitable. At least to the young people of the time. Sound familiar?

However, Gene Roddenberry had the temerity to suggest that in the twenty-third century, human-kind would still be alive. More than that, he said we would be thriving in a grand adventure across the galaxy. It was pretty fantastic stuff at that time. Perhaps even at this time.

However, the part that caught my attention in Star Trek was the technology. Not just warp drive and transporters, but handheld communications devices that could go anywhere with a person. Computers you could talk to. Remember, at that time computers were things owned by big companies, unreachable by the average person.

The other cool thing was the way Kirk and Spock would come up with ways to solve problems using science and scientific thinking. In school each day facing challenges and tests I would find myself asking, "what would Spock do?" Moreover, it often helped me figure out solutions. I read and learned about the scientific method and critical thinking. Life lessons that would make a profound difference for me.

And Great Heights to Reach

Of course, we also had the "Space Race," as well. I was obsessed with NASA and everything going on with the space program. I followed Mercury, Gemini, and Apollo with intense interest. I kept a lockbox I filled with clippings, books, and magazines I read. If it was about the astronauts or the missions, I was all over it.

How could one not be excited? Star Trek was telling us about a future in space, and NASA was building it.

It's interesting that now at the time of my retirement from the tech industry, we are celebrating the 50th anniversary of the first landing on the Moon. A mark in history that forever changed who we are. No longer stuck on a single world, we are now capable of exploring and, I hope, eventually living on other worlds.

From Big Beginnings

Another major inspiration in my younger life was my high school math lab. In the lab, in those days, we had a large teletype terminal, which connected via an audio modem to the school systems time-sharing mainframe. Students were allowed to use this device to check out what a computer was capable of doing.

We had very little instruction in class, but there was a couple of manuals next to the terminal. One of which, a reference manual for the BASIC programming language started filling up all of my time. One day, I spirited the manual out of the lab for a weekend so that I could read the entire thing in my spare time. Of which I had a lot as a young teenager at that period.

My friends and I spent hours playing with the computer, finding odd languages like Fortran, Cobol, and even SNOBOL. However, I went through the BASIC reference manual and tried out every command, eventually writing small programs, experimenting with what I could make a computer do. At the time this meant the use of lots of paper, as the only way to get output from the mainframe was via the large roll of paper attached to the teletype. Even more fun was the fact that we could write programs while offline, via a paper tape machine connected to the teletype. We could then dial into the computer and enter our programs with the paper tape, which saved on connection time for the busy school system computer.

We got a field trip to the location where the district computer resided. Seeing the large mainframe, and several smaller "mini-computers" that worked with the mainframe was quite a treat. One of the operators showed us a program he had created that allowed him to run a race with a car that appears as an asterisk (*). The objective was to keep the "car" between two curving lines drawn on the sides of a roll of paper. He changed the direction of the car via a simple switch on the mainframes front panel. The challenge was to keep the little car between two ever-changing lines on the sides of the paper. We each got a chance to try our hands at "driving" the race car. I'm sure several hundred feet of paper were spent for our enjoyment.

I still remember the magic of connecting to that room-filling machine and having it do what I asked with the simple programs I created.

To small accomplishments

During my years in College in the nineteen-seventies, I played with other mainframe computers through more paper-friendly CRT terminals. These often whetted my appetite. However, I didn't have the time to explore my interests further as I had set myself to get degrees in both Physics and Mathematics. Why did I decide on two degrees? It seemed only natural since getting the Physics degree meant I would already have over eighty percent of the Math courses needed for that degree.

During that time, my friends who appeared to have more free time studying English and Political science brought me news of a new set of computers based on microprocessors. Small computers that sat on a desktop, yet had nearly the same power as the older huge mainframes I had first seen. The thought of having my own computer for personal use intrigued me a great deal. If ever I could afford such luxuries.

In the late nineteen-seventies I saw my first "personal computer" in a Radio Shack store. It was the now (in)famous TRS-80 Model 1. There was an encouraging sign that asked people to "Try It Out!" with a few instructions that you could type. I was happy to see these were in BASIC. I tried a couple of their examples and a few of the small little programs I could remember using back in high-school.

It was a fantastic experience. I remember looking around to find only the power cord plugged into this system. It really was a self-contained computer. Capable of doing what the system I had used before had done. With the immediacy of results appearing on the screen as soon as I typed a command.

I had to have one

However, the question quickly came up: Which one? In 1980 when I had the money I needed to purchase a computer. However, there were already several options available commercially. In a few years, the world had gone from large machines costing hundreds of thousands of dollars or more, to an array of personal computers available to just about anyone.

Discussions with my friends led to the personal decision to get the Apple ][ Plus computer primarily because it provided color graphics at a time when most machines were still monochrome.

I spent hours writing software for the little machine. During my college years, I had been introduced to the first Role Playing Game (RPG) Dungeons & Dragons. I spent much of my free time playing and eventually running games myself. So it's no surprise that one of my first computer programs was to help me with many of the tasks involved with running the games. I probably spent more time on that program over the next several years than any other program I have written for my personal use.  I only wish I still had the code.

Little Silicon Chips

My first job outside of college was in the fabrication of silicon chips. However, the silicon we were making were for power transformers and transmission. Small chips that might go into a computer power supply, and much larger pieces used in power plants and major power transmission lines. Diodes capable of handling as much as 10,000 Amps(!)

It was a fascinating time, working in a cleanroom and learning first hand the processes for making diodes, transistors, and thyristors. We were on the cutting edge of a new Gallium-Arsenide production technique. Very cool yet hazardous stuff.

However, my interest was more on the side of the automation processes. Computers that controlled testing devices were being introduced in our company. I became interested in these devices. Especially as it turned out that they used BASIC even then. It was almost a sign.

At the same time, I introduced my engineering buddies to their first look at a personal computer when I brought my Apple to the office. The hit of the party was a spreadsheet (VisiCalc). Which we started using to track the quality of different stages of our production process.

IT becomes an obsession

While spending what free time I had, I began teaching myself other programming languages. Pascal, C, Forth. I enjoyed seeing how each language used different syntax to achieve the same things. In the process, I learned the internal details of how CPU, Memory, and Peripheral's all interact at the lowest levels.

At the same time, I found my co-workers anxious to learn how these computers worked and how they might use them for their own professional and personal improvement. I started teaching classes in basic computer usage, as well as programming. I was also introduced to early computer magazines, that not only needed readers but writers as well. I ended up writing for several periodicals from the time. Most of which no longer exist.

By now, I realized I was far more interested in developing software than I was with working on silicon chip design. In fact, most of the chip work was moving to Japan and Korea anyway.

When a funny thing happened

At the time, I was still working on automating systems for manufacturing, and keeping myself up to date on new developments in Physics. When I ran into a remarkable ad in the PhysResLets (Physics Review Letters). It was posted by a newish company called Microsoft. The ad was looking for software developers and said they were explicitly advertising there because they had found a significant number of their current programmers were trained in Physics. It turned out that the skills for thinking in abstract terms and logical problem solving crossed over the two fields.

However, I wasn't all that interested in moving to Seattle, and they had few jobs elsewhere at that time.

To make a very long story just a bit shorter, I found a job in a telecom business as a software engineer. I'm delighted to say that despite having learned everything I knew about programming by teaching myself, I passed their application tests with high marks. I managed to beat out dozens of other candidates at the time, and landed my first real job as a professional software engineer.

Of course, that's not really that hard in this industry. Most professionals are aware that the number of competent software engineers is tiny compared to the number of jobs available.

Part 2? 

The rest, as they say, is history. 30+ years writing software in various small and large businesses. The best part, for me, was the constant learning curve. New technology and new people with new ideas every day of every week. It's an exciting industry for those that have the willingness to learn.