David Wang
About Me
When I was a little kid, I loved to tinker with electronics around the house, which turned into a lifelong interest in technology and engineering. I grew up reading about people like Steve Jobs and Bill Gates, and it has always been my dream to create something innovative that can change the world.
As an electronics hobbyist, my goal is to both learn about the technology that powers this world and to create things others can learn from. As a startup founder, my goal is to solve real world problems and create products that can improve lives.
I enjoy tackling challenges and thinking up solutions for them, which led me to study Computer Engineering at the University of Michigan. My interests and skillset include embedded systems, programming, robotics, and PCB design. If you have any opportunities where I can grow and help you reach your goals, please feel free to reach out at dw3fd2011@gmail.com.
Resume
Experience
NvIDIA: Firmware Engineer Intern
During my internship at NVIDIA, I developed C based microcode and Python infrastructure scripts for GPU context switching. My tasks included:
Designing and coding a framework for automatic error code generation and enhanced testing processes
Resolving 400+ MISRA/CERT-C violations with Coverity to ensure code reliability in high risk settings
Specifying and implementing unit tests for various modules to verify code matches intended design
Integrating performance optimizations and bug fixes across different GPU hardware variants
Qualcomm: Firmware Engineer Intern
As an intern at Qualcomm, I developed high performance C firmware for Bluetooth and ultra wideband modems. My responsibilities included:
Refining algorithms within hardware constraints to process antenna measurements in real time
Developing new modules to calculate input propagation delay and record modem usage statistics
Testing and evaluating performance of firmware on pre-silicon hardware design using FPGA emulation
Performing assembly level debugging on RISC-V architecture with TRACE32 JTAG debugger
Working with hardware team to configure peripheral registers and identify changes for new chip revisions
AnomalyWC: Founder
In 2019, I founded AnomalyWC, a startup focused on designing convenient and easy to use gadgets to help people in their everyday lives. While working as CEO of AnomalyWC, I've developed and launched two products: SunriseRGB and Omni Dial, which were both successfully funded on Kickstarter. As part of my experiences at AnomalyWC, I have been responsible for:
Designing custom PCBs for AVR and ATSAMD microcontrollers
Developing embedded software in Arduino and MicroPython
Modeling product cases in CAD for mass production
Working with international suppliers and sourcing components
Creating marketing materials for Kickstarter and other platforms
Communicating with customers to resolve issues and receive design feedback
Skills
Software
C/C++
Python
Java
MicroPython / CircuitPython
Arduino
Hardware
PCB Design
Embedded Systems
Hardware Debugging
CAD Modelling
Verilog
Tools
EAGLE
Git
Autodesk Inventor
Intellij
VSCode
Oscilloscope / Multimeter
Personal
Creative Writing
Learning Quickly and Adapting
Communication
Leadership
Awards
Harry B. Benford Award for Entrepreneurship Finalist
Congressional App Challenge Winner
MIT Beaverworks PiPACT Top 10 Paper
Michigan Engineering Dean's List
Eight Science Olympiad Medals
2021 National Merit Scholarship Finalist
First Place at MN State Fair Technology Education in 3D Printing and Wiring
AP Scholar with Distinction
GitHub Stats
Portfolio
AnomalyWC: SunriseRGB
SunriseRGB is a controller for WS2812B/Neopixel addressable LEDs, powered by a ATTiny85 processor and user reprogrammable through the Arduino IDE. It features a USB C port and two buttons to change modes and to turn the LEDs on or off. This project was launched and successfully funded on Kickstarter!
AnomalyWC: Omni Dial
Omni Dial is a touch input device for your computer. With a clockwise or counterclockwise swipe of your finger, Omni Dial lets you conveniently adjust brightness, volume, skip through songs, and more! It features USB C connectivity and glows to indicate which mode you are in. This project was launched and successfully funded on Kickstarter!
Facial Recognition Smart Lock
Gaining access to a locked enclosure typically requires three steps: locating your keys, unlocking the door, and opening the door. This project intends to reduce this process to just one step. To achieve this, we built a STM32 powered smart lock that unlocks the door using a solenoid upon receiving a signal from the Person Sensor, a facial recognition camera system. The smart lock features a button to enter calibration mode, a OLED display that shows the user the current status of the lock, and a red/green lock status indicator LED. To unlock or lock the door from the interior, the user can turn a rotary encoder in a similar manner as with a mechanical deadbolt. Whenever the user unlocks the door, a 30-second timer starts ticking, at the end of which the device will automatically lock.
Wearable Vitamin D and Sunlight Tracker
This project centers around a sunlight exposure and Vitamin D quantification and analysis system, which consists of a wearable vitamin sensor module and a mobile application which allows users to view their sunlight trends. The wearable device contains a UV/ambient light sensor connected to a Bluetooth module, which communicates sensor data on a fixed interval with the user’s mobile device. On the user’s device, the mobile application allows users to set sunlight target goals, based on location/season, and determines if the user has met these goals by calculating the average sunlight intensity from sensor data. Notifications are sent to users to inform them of strong UV levels which could cause sunburns and whether they have met their daily sunlight goal.
ESP32 Cam AR Object Identification
This project focuses on creating AR glasses with a transparent OLED display which can display information about what your looking at, like a heads up display. The glasses component is powered by an ESP32 Cam module, which takes pictures of what is in front of the user every second. These images are then sent to a remote server to be processed with OpenCV/cvlib, which uses the YOLOv3 model to identify an assortment of common household objects. The object information is then sent back to the ESP32 and displayed on an SSD1309 OLED.
BlackDuckKeyboard
BlackDuckKeyboard is a open source custom mechanical keyboard I designed and built. This keyboard is fully 3D printed, powered by a Teensy 2.0 microcontroller, with every key remappable through the open source QMK keyboard firmware. The case is split into multiple parts for ease of 3D printing and is designed to fit MX style switches. Internally, the switches are handwired in a matrix and connected to the Teensy controller, along with a WS2812B LED strip.
Smart Resistor Storage
Finding the proper resistor from a bin is always a hassle, and you never know how many resistors of each value you have left. The goal of this project is to solve this problem by making a smart resistor storage device, powered by a Particle Photon controller. It consists of a storage drawer which will store resistors, LEDs in each drawer to indicate quantity and alert the user to where a resistor can be found, buttons and a screen to change the stored quantity of each resistor, and a web interface to select resistors and monitor the quantity of each resistor.
MIT BWSI: PiPACT Research Project
As part of MIT PiPACT, I conducted independent research on Bluetooth coronavirus contact tracing. During my testing, I used Raspberry Pi computers to measure Bluetooth RSSI through various materials, with different antenna gains, RF interference, and directionality to replicate real world contact tracing challenges. In my paper, I proposed possible solutions to the challenges I analyzed and presented my findings to the PACT research group.
WiFi RC Car
This project features a WiFi controlled RC car, powered by a NodeMCU controller. I lost the remote for the original RC car, a New Bright Hummer H3T, and decided to update it with some modern features. The original motor control circuitry required too much modification, so I decided to replace it with four relays. The main drive motor and steering motor each have 2 relays in a relay H Bridge configuration for forward and reverse and are directly connected to the power source, which I used a USB power brick for.
AnomalyWC: Z3 Leo
Z3 Leo is a tiny microcontroller, so small that it fits entirely inside a USB port! Z3 Leo was designed as a low cost, simple and small microcontroller for those small DIY projects that don't need the power of larger microcontrollers. It is based again around the ATTiny85 chip, and has an 8 pin JST SH connector to connect to breakout boards, the programming adapter, or to components of your choosing!
Line Following Robot
A line following robot, using 2 continous rotation servos and 2 IR sensors connected to an Arduino Uno. The robot goes along a line, and turns left or right depending on whether the left or right IR sensor is triggered, in order to stay on that line. The robot is powered by four AA batteries and has a small office chair wheel as its rear wheel.
Auto Job Finder
Tired of looking through hundreds of jobs to find ones with a good fit? Let a computer do it for you, just like how recruiters screen applicants! This program combs through pages of Indeed search results to find job listings that fit your skills, and can also reject ones that have keywords you don't want.
Smart Thermometer
A very accurate portable thermometer with a OLED display, temperature range LEDs, and a Li Ion battery, powered by a Adafruit Feather M0 Express. Using the 12 bit ADC of the M0 and 2 filtering capacitors for power and data, the thermometer is able to get very precise readings from a custom made waterproof TMP36 probe, which are displayed on the OLED screen and indicated by red, green, and blue LEDs for different ranges. The device is also able to measure the remaining battery percentage from the battery voltage using a charge curve.
Best Buy Restock Siren
Are you sick and tired of manually checking restocks for high demand items like GPUs on Best Buy? Well I have just the solution for you! This restock detector consists of a Python program which constantly refreshes a Best Buy product page, until it detects that the item can be added to your cart. It then sends a signal over serial to an Arduino Uno, which can be connected to a siren or other annoying device to get your attention.