WilliamWong
Soldering Samurai
Hi, I'm William! I'm 100% human, not AI (I think).
I'm from Atlanta, Georgia. I studied electrical engineering at the University of Southern California, where I picked up a B.S. and an M.S. in EE. Outside of building whatever thingamabob I've come up with next, I play golf, fish, and the occasional spikeball (won 2nd place once in a middle school tournament), and grind video games (currently Elden Ring). I'm also a board game enthusiast: Risk and Ticket to Ride are my go-tos. And of course, I eat: top 40 Beli eater in Georgia.
University of Southern California · Electrical Engineering
B.S. Electrical and Computer Engineering
M.S. Electrical Engineering
Electrical Design Intern
Kaohsiung, Taiwan · Summer 2025
In Kaohsiung, I modeled switchgear, panelboards, and conduit runs in Revit against NEC clearances, ran Navisworks clash detection to resolve about 30 HVAC and plumbing conflicts, and wrote Excel macros to catch voltage and phase issues in commissioning logs.
Hardware Engineering Intern
Tainan, Taiwan · Summer 2024
At Droxo I designed a spray-flow sensor board in KiCad with flowmeter input, current monitoring, and transient protection, calibrated a diaphragm pump across different nozzles, and traced 25 field failures back to a thermal hotspot that led to a copper-pour redesign.
Electrical Engineering Intern
Peachtree Corners, GA · Summer 2023
At Skymul I designed DRV8353 gate-drive circuitry in Altium for a rebar-tying drone, sized bulk capacitance in LTspice, routed high-current motor phases and CAN on a four-layer board, then ran a 40-point validation matrix to qualify the actuator driver for flight.
AutomaticPill Sorter
An automatic pill dispenser that fills a weekly pill organizer for you. Load each hopper with one specific pill, enter what you need to take that day, and the disc rotates each loaded hopper into position to dispense it instead of you sorting pills into the organizer by hand. A custom PCB I designed drives the motor and tracks which hopper is lined up.
Getting the correct pill out of the correct hopper is solved. What's not solved is the next step: routing that pill into a specific compartment of a weekly pill organizer instead of one shared output, at a size that still fits on a nightstand. I don't have a pick-and-place mechanism worked out yet for that part.
Things I've builtbecause I'm bored
More details can be found on my GitHub, linked at the bottom.
USC Formula SAE · Electronics Team
The car doesn't move until every wire on this list checks out.
I designed the tractive-system low-voltage harness (120 sealed contacts, twisted-pair CAN), validated the shutdown circuit across 50 simulated fault conditions with the AIR opening in under 10ms, sized the precharge resistor to limit inrush to 8A into the 400µF DC-link, and logged pack voltage, phase current, and brake pressure over CAN at 100Hz.
5V Buck-Boost Converter
Feed it a dying battery or an overachieving wall adapter, it hands back the same unbothered 5V either way.
Built around TI's TPS63070 single-inductor buck-boost, regulating anywhere from 3V to 16V input down (or up) to a steady 5V, with a TI LM66200 ideal-diode controller in front for reverse-polarity protection instead of the usual Schottky-diode voltage drop, and a status LED wired straight off the regulator's power-good pin.
Cocktail Machine
Built so I never have to make eye contact with anyone at 2am.
An ESP32-S3 brain, four TB6612FNG motor drivers, and just enough plumbing to keep the whole thing from flooding my desk.
GNSS Receiver
A GNSS receiver project built around the u-blox ZED-F9P, patient enough to wait for enough satellites to agree on where it actually is.
Breaks out a u-blox ZED-F9P onto a carrier board with UART, SPI, and I2C headers, a coin-cell-backed RTC for faster fixes on power-up, and a DSEL jumper to flip the module between SPI and UART. Onboard LEDs track power, PPS timing pulses, RTK fix status, and the geofence output, with SAFE and INT lines broken out for whatever needs to react to them. Still working out exactly how precise "precise" turns out to be.
12V Motor Driver
Just enough decoupling to keep the magic smoke where it belongs.
A TB6612FNG breakout for driving a 12V DC motor forward, reverse, and everywhere in between, across two independent channels.
USB-C PD Trigger
Politely asks a USB-C charger for way more power than it should reasonably hand over, and usually gets it.
Negotiates up through the PD voltage ladder to 20V, then holds it steady out to a barrel jack for whatever needs feeding.
SirGrab
A multi-joint robotic arm that reaches down, grips whatever's in front of it, and moves it somewhere else, which is either the beginning of automation or the beginning of a very expensive game of fetch.
Seven degrees of freedom driven by eight TD-8120MG servos off a custom PWM driver board built on Adafruit's design, with an Arduino Uno R4 as the brain and Google MediaPipe doing the actual hand-tracking that tells it where to reach.
CPRPal
Keeps better rhythm than most drummers I know.
My USC capstone project: CPRPal sits on the chest during compressions and paces you with its LED ring at the AHA-recommended 100 to 120 compressions per minute.
O'Hare Air
Named after the guy in The Lorax who got rich selling bottled air. This one just tells you the truth about the room instead.
A desktop air quality monitor shaped like a flower, built around a ScioSense ENS161 (eTVOC, eCO2, and its own onboard 1-5 AQI-UBA rating) and an ENS210 for temperature and humidity. A 28BYJ-48 stepper sweeps a needle across five positions matching the sensor's AQI-UBA output, an RGB LED fades green to red with it, and the board hosts its own Wi-Fi dashboard with live charts, 7-day on-device history, and CSV export, no app or cloud involved. Two PCB generations exist: a shield that plugs onto an ESP32-S3 dev board, and a from-scratch board built around a bare ESP32-H2 module for a much smaller footprint.
BLDC Motor Controller
Two round boards that only agree on one thing: exactly where the rotor is, a hundred thousand times a second.
A two-board stack sized to sit directly behind the motor it drives, joined face-to-face through a Molex board-to-board connector. The MCU board runs an STM32F4 through a timer-driven commutation loop, reading absolute rotor position off an AS5048A magnetic encoder (14-bit, no back-EMF guesswork at standstill) and motion data off an onboard ISM330DHCX IMU, with an SK6805 RGB ring reporting status at a glance. The power board does the muscle work: a TMC6300 integrated gate driver/bridge switches the three phases directly, three INA240 amplifiers close the current loop, four sense networks watch bus and phase voltage, and a TCAN1462 CAN FD transceiver lets several controllers daisy-chain off one bus. USB-C and a J-Link SWD header handle bring-up.
Tea Cozy Hotplate
The heating element is just the PCB itself, etched into a spiral and told to misbehave a little.
A USB-C powered hotplate sized for a single cup of tea, closed-loop controlled to within about 2°C. An STM32F103C8T6 reads a thermistor bonded under a 3.75Ω spiral coil etched directly into the board copper (no separate heating element), and PWMs two low-side AO3400A MOSFETs to hold it there, with a second thermistor watching the driver FETs for thermal headroom. A ten-segment WS2812B bar doubles as a 0-90°C dial in 10-degree steps, nudged up or down by two buttons, and the board exposes both SWD and UART headers with BOOT0/Reset buttons for field reflashing without opening a case.
You can reach me here.
© 2026 William Wong · Rev 01