According to my business card, I make my living as an embedded software engineer. Like so many people my age who ended up as engineers, I cut my teeth programming in BASIC on an Atari 800XL 8-bit home computer, starting in 1984. It began with keying in programs from computer magazines. Once that grew tiresome, I graduated to modifying programs and eventually writing my own from scratch. The major epiphany came around 1990, when I built an electronic interface for the Atari which let me control some external motors and read sensors. The idea that software running on a computer could control and respond to something in the real world was so intoxicating that it changed the course of my life.
I graduated from the Atari to my first IBM-compatible PC shortly thereafter, and learned more programming languages within a couple years: QBasic, Pascal, and finally C. I spent my high school years writing and rewriting a series of complete robot control systems, from low-level motion control up to elaborate GUI. When I wasn’t working on robots, I spent a lot of time with my hands in code for Bulletin Board Systems (BBS), as I was equally fascinated with mixing software and telecommunications.
In college, I had another life-altering epiphany. In 1993, I installed a very early version of Linux, and since that time, it has factored in heavily to my work and personal projects.
These days, I mostly program in C, C++, Python and JavaScript. I write bare metal embedded code for tiny microcontrollers, Linux device drivers, application code, and GUI code.
Software Projects
[subpages]