(somewhat out of date) in
or plain text format
This page mostly exists to provide a place for my resume, but I'll provide a bit of context as well. I got started with UNIX as an undergraduate intern at "old" SCO in Santa Cruz, CA, initially doing support and development work on PDP-11 installations, and later working on Xenix on early PC's and on the Apple Lisa (much of this work was drivers of various sorts). At some point I wanted to do something different, so I went off to get a PhD in Cognitive Science (where I did a fair amount of programming in C and Python, supporting my research as an experimental psychologist). After doing academia for 10 years, I decided it wasn't what I really wanted to do, so I went back to doing computer work, and got hired (thanks to Kip McAtee, an old boss at SCO) to do Linux development work for high-end networking test equipment (so: "embedded" Linux). My subsequent jobs have also been embedded Linux, often (but not exclusively) on ARM processors. This typically involves bringing up Linux on prototype hardware, as well as a lot of work at the kernel/user interface, providing debugging support and diagnostic tools for hardware engineers, and providing API's (often hardware-related) and debugging support for applications programmers. At Zing/Dell, I worked with battery-powered consumer devices, which was a new and interesting world. At Palm/HP, I worked on the (in-)famous HP Touchpad, which was actually a pretty cool device. At Roku, I worked with a top-notch group of people on well-designed products that sold very well (enabling users to watch mind-numbing TV even more efficiently :-) ).
However, working with Linux is similar whether it's on an embedded device or a server, so I don't want to be narrowly classified as a "Firmware Engineer" (though I've enjoyed working with hardware folks!).