Projects

A common thread runs through most of these: a screen people interact with — usually a Vue.js app backed by a Node server and a database, often with a social or sharing component — driving the custom firmware and controls behind some everyday object repurposed to do something it was never designed to do.

I excel at adding physical and digital interactivity to existing structures built by fabricators — integrating custom electronics, firmware, lighting, and software into someone else's build to bring it to life.

These are just some of the projects I've had the chance to work on — not a complete list. Over the years I've built many more, including numerous touchscreen kiosks and interactive activations that aren't captured here.

T-Mobile

Marketing Activation — Brooklyn, NY

Interactive Engineer


A Halloween-themed marketing activation built into a Brooklyn brownstone. Behind a custom door sat the gutted internals of a vending machine, rebuilt with custom motors and controls. When kids pushed a large 3D-printed Reese's button, the machine dispensed 10–12 candies while triggering Halloween sound effects and LED lighting features throughout the space. A Node server handled the overall controls, with the motor-control firmware running on a microcontroller.

Bayer | XtendFlex Soybeans

Commodity Classic 2020 — San Antonio, TX

02/24/2020 – 02/27/2020

Interactive Engineer

Football Toss


The goal of this activation was to have attendees throw a football through one of the holes and trigger crowd cheering sounds. I designed the controller and backend lighting control, linked together with sensors feeding a server and database for tracking.

Cymer Fade & Frequency Exhibit

Cymer Headquarters — San Diego, CA

02/21/2020

Interactive Engineer


Designed to showcase Cymer's EUV and DUV lasers at their San Diego headquarters.

United States Postal Service

2020 CES — Las Vegas, NV

01/04/2020 – 01/10/2020

Interactive Engineer

Mailbox Wall


At CES 2020 the USPS built a massive wall of mailboxes lit with custom LEDs, all controlled over DMX and driven by a Node server. The wall had three interaction stations, each running a touchscreen web app where attendees would fill out some information and learn about the brand.

Completing the experience kicked off a whole sequence on the wall: you'd be told to look up, a hidden DSLR camera captured your photo, and a printer in the back produced a prepaid-postage print. A randomly chosen mailbox (one of nine) received the prize — socks and other goodies along with your photo — while lighting cues in the back lit up that mailbox and the station screen showed you which one your prize was in.

Skeeball


The client wanted a fully custom skeeball game. Starting from the sensors that come with a skeeball machine, I wrote brand-new firmware and connected it to a Node server with a touchscreen front-end — adding custom graphics, custom scoring, and multiple levels to make it far more elaborate than a standard skeeball machine.

USPS Skeeball

Google @ Salesforce Dreamforce

Salesforce Dreamforce 2019 — San Francisco, CA

11/20/2019 – 11/25/2019

Interactive Engineer

Snack Match


A Tinder-style web app designed to demonstrate Google Analytics on major brands, in this case Conagra Brands. I built the custom firmware and controls for the vending machine, a custom web app running on a tablet, and the server tying it all together — and served as the on-site engineer with our Google clients. 15 minutes into opening, a severed network cable took the vending machine offline — I switched all devices onto a wireless VLAN and had it back up quickly.

Attendees waited in line up to an hour to get matched with a snack — the only real limitation was how many snacks the machine could hold.

Cadillac

Forbes 30 Under 30 — Detroit, MI

10/27/2019

Interactive Engineer

Light Box


LED strips driven by a custom firmware controller, with an option for the client to program the lighting over DMX. Paired with it was a social-share experience: a web app I built where users could walk up, select different items for their image, take their photo, and share it — all from a tablet.

Chevy

2019 MLB All-Star Game — Cleveland, OH

07/03/2019 – 07/10/2019

Interactive Engineer | On-site Engineer

Altuve Challenge


From the hardware used to light the buttons, custom circuit board, embedded software, to the front-end interface — I had the unique opportunity to build, program, and set up this interactive experience at the All-Star Game in Cleveland. The Altuve Challenge is a game where users try to hit lit buttons as fast as possible. The manufacturer's button lights were single-color and dim, so I added a NeoPixel ring to each button and designed a custom printed PCB running custom firmware to interface them with the Node server.

MVP Voting


An activation where guests threw balls at a plate fitted with a custom pressure gauge I modeled and built. The gauge read the compression of the plate to calculate ball speed, casting a vote for a Chevy vehicle — and each throw triggered DMX lighting and coordinated audio/video.

Google | Edge TPU

2019 Google Cloud NEXT — San Francisco, CA

04/09/2019 – 04/11/2019

2019 Google I/O — Mountain View, CA

05/03/2019 – 05/10/2019

Interactive Engineer | On-site Engineer

Puck Sorting Demonstration


This activation showcased the speed and accuracy of the Edge TPU chip on the Coral Development Board.

Google Edge TPU Puck Sorting Demo

My role was to design and build the mechanical pieces that moved and sorted the pucks. The TPU inferred a chute ID and sent it to a Node server running on a custom-soldered microcontroller that controlled the flippers. The main chute was driven by a custom BLDC motor with a calibrated PID controller, connected to a power supply retrofitted with a resistor bank to absorb back-current.

TPU Chute Motor and Controller

The video below shows testing of the custom servo motor. One of the major hurdles was finding a servo that was fast, strong, and affordable enough to move the nearly 4-pound chute.

Google Dev GitHub →

Reflex Game

24G, LLC.

Interactive Engineer


An in-house reflex speed game built as a reusable 24G product — lit buttons paired with a touchscreen where players race to hit each button as it illuminates. I designed the custom PCB, assembled and wired the NeoPixel lighting, and wrote the controlling firmware. The controller is a plug-and-play serial module: any device can drive the buttons and lights and read presses back, making it easy to build new front-ends on top.

Senior Capstone Design — Team 51

GHSP, LLC.

01/05/2018 – 12/20/2018

Hardware & Software Integration / Controls Engineer


Designed a linear actuator to control a CVP in a CVT. My role was to implement the PID controller and motor control, ensuring power and signals met the required specs, speed, and cycle life.

Roller Bottle Testing Device

Dr. Ong — Chemical Engineering Department, Michigan Technological University

01/11/2018 – 12/20/2018

Hardware & Controls Engineer


Designed and built an open-source roller bottle testing device for Dr. Ong's lab. Included custom PCB design, microcontroller programming, and a 3D-printed mechanical frame.

Bowling Alley

24G, LLC.

06/01/2016 – 08/11/2016

Project Lead | Hardware & Controls Engineer


Restored and automated the bowling alley in 24G's main office. Delivered in 60 days before fall classes resumed.

Bowling Alley V1 Controls

Open Source Can Return Machine

Blue Marble SecurityMTU Enterprise Program, Houghton, MI

09/09/2015 – 12/22/2015

Project Manager | Lead Developer


Built an open-source can return machine through the Michigan Tech Enterprise program, which gives students hands-on industry-style engineering experience.