Programming is a craft – one of the so-called “useful
arts” – and I have been practicing
that craft for about half a century – I learned to program when I was in high
school, at a time when a room-full of mainframe had less computing power than
a smart watch. During my career I have seen the beginnings of the Internet,
personal computers, graphical user interfaces, structured programming,
object-oriented programming, the Free Software and Open Source movements, the
World Wide Web, web browsers, Linux, and
My perspective on the history of computers and programming often makes it easier to get ideas across, because I can explain why things are the way they are – how they got that way, what the alternatives were, and why they didn’t work. My broad experience often makes it easier for me to come up with unusual but effective solutions.
I’ve written macro assemblers, debuggers, web servers, and text editors; I may
be one of the few people to have written object-oriented code with a macro
assembler, designed a Turing-complete functional programming language with XML
syntax (PIA), or built a static
site generator based on
I am listed as a co-inventor on 40-odd patents (search here), and have written a book on Real-Time Microprocessor Systems (1985). I have also recorded and self-published a CD called Coffee, Computers, and Song!.
I have given presentations and workshops on git, object-oriented application frameworks, XML, sound recording, CD production, and songwriting, among other things.
No matter what my job title may be, I have always been primarily a toolmaker, and enjoy putting together the kind of small, useful things that people will take for granted because they “just work”. You can find many of them in my “Swiss Army” build system, MakeStuff.