BS in Electrical and Computer Engineering from Oregon State University.
5+ years professional experience in hardware testing.
Extensive microcontroller experience from freelance projects.
I'm a freelance embedded systems engineer with experience ranging from assembly code on baremetal microcontrollers to real-time operating systems on ARM devices. I am comfortable with most common peripherals and protocols. My interests are instrumentation, machine automation, signal processing, and power management.
Early in my career I was advised that technician experience makes a better engineer, especially providing insight into manufacturability. With this in mind, I have pursued technician jobs while completing my engineering degree with the intent of improving the caliber of my designs. Assembling a product gives me suggestions for improvement and how it could be made easier to assemble. Testing a product tells me what doesn't work reliably and gives ideas for how to improve the quality. Although I do this while working on someone else's product, it allows me to review what design decisions were made and whether a particular decision worked well in production.
Another piece of advice I took to heart came from an aquantance at a LabVIEW User's Group meetup. He told me that LabVIEW is fun to use, but doesn't run on many platforms. If I were to learn embedded programming, I could program anything. The opportunity came my freshman year at OSU during an intro class where we were given an Atmel tiny26 and an in-system programmer. I immidiately had aspirations of useful projects for the microcontroller, which I discovered were beyond my then ability. Not to be dissuaded, I kept attempting new projects and learned in the process, from bit-masking and effecient embedded techniques to peripherals and protocols and interrupts. Of course my classes helped, but the hands-on learning was much more memorable and in-depth. I find that most of my embedded experience is from my personal projects.