I'm Eric. I design hardware, firmware and software for a variety of applications. I offer consulting services developing embedded systems solutions. I also write for Hackaday, and occasionally here as well.

I'm interested in embedded systems, automotive, open source hardware, alternative energy, security, music, unicycles, and various other things

I can be found on Twitter, Github, and LinkedIn.

Interested in working together? My resume gives an overview of my professional experience. If you have questions, we should get in touch.


When I was at the University of Waterloo, and working with the University of Waterloo Alternative Fuels Team (UWAFT), I had access to lots of great tools. Everything from vehicle lifts to fancy torque wrenches were available in our garage. However, one very important tool for working on modern cars isn’t a mechanical one. Since today’s cars are essentially computers, an interface to communicate with automotive systems is quite a powerful thing to have.

Continuous Integration for Firmware

Continuous Integration, or CI, is the practice of continuously building code and running tests to ensure the code you’re pushing to a repository actually works. CI tools can be quite helpful in developing firmware for embedded systems for a number of reasons. Consistent Build Environment Each microcontroller architecture will have its own set of tools for compiling, ranging from open source tools like avr-gcc to proprietary systems like IAR Embedded Workbench.

Learning Microcontrollers, from Arduino to ARM

Where do I start learning about hardware? I’ve been asked this by a few people who are interested, and don’t know where to start. Working with microcontrollers is a good bridge between hardware and software, since you’ll be writing code called firmware that controls hardware at a very low level. So how do you get started with firmware development? There’s a lot of stuff out here, and it can be tough to figure out what to buy.