Embedded and constrained systems
Twenty years of C and C++ on hardware that does not forgive waste. Seven shipped Nintendo DS, DSi, and Game Boy Advance titles where the memory budget was kilobytes. A Phidgets single‑board computer running a service against 24 sensor device types. Multithreaded real‑time software on lane‑side tolling hardware clearing millions of transactions a day. I am strongest where the constraint is memory, latency, or a device that has to keep running.
Have device software to build or fix? Email me.
Hardware I've shipped software on
- Nintendo DS, DSi, and Game Boy Advance (Powerhead Games, 2006 to 2010). Seven shipped titles in C and C++ for 2K Sports, Konami, Ubisoft, and Powerhead's own label. The GBA gives you 256KB of external work RAM and 32KB of fast internal RAM, so allocation is a design decision made before the code is written rather than a problem profiled afterwards. Titles included Major League Baseball 2K10 (2K Sports, audio programming), Glow Artisan (IGF Mobile 2010 Best Mobile Game Design winner, Nintendo Life 9/10), Did It Myself ABC123 (the first DSiWare title the ESRB rated EC), two Winx Club titles for Konami on DS and Game Boy Advance, and Petz: Catz 2 for Ubisoft.
- Phidgets single‑board computer (Green Energy Research, 2013 to 2019). I built the data‑logging system around the board: a Python Flask service running on the SBC itself, driving 24 Phidget device types and serving sensor data over a wireless TCP/IP link. I wrote the iOS and Android clients that plot that data live and stream webcam video off the board, plus a native module exposing the sensor stack to both platforms from one implementation.
- Lane‑side tolling hardware (Neology, 2024 to 2026). Multithreaded real‑time C++ processing millions of daily micro‑transactions under strict latency and accuracy requirements, where a missed read is lost revenue and a late read is a wrong one. Roadside and back‑office subsystems, including field deployment and live‑environment integration on installed equipment.
- Zebra handheld scanners (Zebra Technologies, 2019 to 2021). Led a computer‑vision project inside the native Android NDK and C++ codebase, and refactored a single‑threaded capture application into a three‑thread architecture with OpenGL ES 2 rendering.
- Roku set‑top devices (Comcast, 2023 to 2025). Led the team owning the Roku Video Player inside Xfinity Stream. Roku imposes hard memory ceilings and a strict split between the render thread and the task thread, so playback work gets budgeted up front. I also led the Interstitial Library integration, which grew linear ad revenue 300%.
The full history is in my embedded resume (PDF, Word), and the console credits are on my MobyGames page.
What I build
- Real‑time C and C++ on devices with a fixed memory budget, including the measurement work that proves it fits.
- Multithreaded rework of single‑threaded capture, decode, or render paths, with the thread boundaries chosen around the hardware rather than around the existing code.
- Sensor and I/O integration: boards, device SDKs, wire protocols, and the service that runs on the board.
- Host‑side tooling, build systems, and CI for device software: CMake, Ninja, Jenkins, GitHub Actions.
- Applied cryptography in device‑adjacent software: AES‑256‑GCM envelope encryption with wrapped data keys, key rotation across active and retired key ids, cryptographic erase, and append‑only hash chains.
Where my experience ends
Worth putting on the page, because an embedded hire goes wrong when the gaps surface in week three instead of in the first call. I have not built a Yocto or BitBake distribution, written Linux kernel modules or device drivers, or authored systemd units in production. I have not implemented secure boot, image signing, anti‑rollback, or secure‑element provisioning on a device, and I have not worked with OP‑TEE or any Trusted Execution Environment. My applied cryptography is server side, not a device chain of trust. I have not implemented a Wi‑Fi or BLE stack; my wireless work is a TCP/IP link to sensor hardware.
What I would bring to that kind of role is twenty years of C and C++ under real constraints, a track record of shipping on hardware I did not design, and the habit of writing down what a result does not prove.
Start with one call
I'm in Mount Sinai, New York, and I work remotely. Available after 12pm Eastern on weekdays.