About Me

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 git.

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 make.

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.