I'm a computer engineer. A maker. A photographer. A backpacker. An Ultimate Frisbee and Pickleball player.

I work at the intersection of software and hardware, where code turns to action.
Reliability is important. When I make something, I want it to work efficiently and quickly, but I need it to do what it's supposed to do, every time.

My experience working with C and C++ in the embedded world taught me the importance of reliability, and working with Rust showed me new tools to write better code. Code that properly handles errors then they happen. That lets the user know what's happening. That other programmers can pick up and understand without a full day briefing session.

I've worked on bare-metal drivers, Real-Time Operating Systems, and embedded Linux kernel modules; I've implemented serial controllers, written FPGA peripherals, and then written drivers for the peripherals I just designed. Whether I'm working in Linux on a Raspberry Pi or on a no-frills, bare-metal ARM Cortex-M system, I always strive to find the best way to deliver an efficient system that provides the right amount of power to both the programmer and to the end user, because User Experience and Developer Experience are both important components of success.
Back to Top