I have a strong interest in electronics. I started my software career as an electronics hobbyist (Homebrewer) as a child way back in the early 1970s. I built crystal radios from Quaker Oat cans, amplifiers, and receivers for CB and aircraft bands. Some of my favorite projects from that time were an electronic cricket I would hide under furniture and beds. It would chirp, then pause a while, then chirp again, and repeat. It took some time to locate and drove my mother mad! Another fun project was a large parabolic microphone. This was nothing but a large dish made from spruce, music wire, and sheet metal, that allowed you to listen to conversations from a large distance.
When Radio electronics published their spread on the Altair 8800 my father got in line for a kit. It took months for the first box to arrive. Then weeks for the next few boxes. But eventually, we got it all. I was surprised when my father asked me to help solder the chips to the board. At the time this was a very expensive purchase for our family. His trusting of me to help put it together was remarkable.
Once we had the Altair 8800 together and working, we began hand assembling small programs. At first, our only form of output was an oscilloscope and the LEDs on the front panel. Eventually, we started adding our peripherals to the Altair. First, a keyboard, then tty interface so we could see the output on a small tv.
Over the years my love of electronics has continued. While I have no EE degree, one of my first jobs was as a bench tech for a small R&D firm in California. There I worked with the engineers to prototype and debug their circuit designs. When they learned I could do a bit of assembly programming for the 8800, 6800, and 6809 processors, they asked me if I could help with programming one of the projects we were working on. At the time that project was using a Hitachi 64180. The 64180 is a Z80 based CPU with some added features. At the time it seemed very high tech and I was excited to be working with it.
That was the beginning of my coding career. After that, I began doing midnight engineering projects for other engineers. I called it midnight engineering because I was often working in my garage until midnight or later and working a day job.
Now I share my love of hardware and software with others when I get the chance. This often means giving talks and demonstrations on how CPUs work and how software controls a computer system. I spend a lot of time developing simple CPUs for teaching. Always looking for a better, simpler, and easier to understand system to demonstrate the technology. I’ve given workshops to software developers looking to better understand how their software manipulates the underlying hardware, and to middle school children to teach the basics of computer systems.
I believe no-one should see a computing device as “Magical” and a good software developer will have one language he’s fluent in and a few others he can be up to speed on over a weekend. Programming languages are to the software developer as wrenches are to the mechanic. I wouldn’t expect a mechanic to have only one wrench in his toolbox and neither should a good software developer! I also think if a software developer hasn’t written a compiler or interpreter they tend to lack a general understanding of how computing systems work in general. How information gets into and manipulated by the system. Just a mechanic needs a good understanding of the general principles and inner workings of an automotive engine, a good developer should also have a good general understanding of the inner workings of the computing system.
Beyond electronics, I also enjoy exploring our country’s back roads. Long drive and scenic views whether it be desert, mountains, or the great plains. There is much to see and experience!