Senior Software Engineer
Senior software engineer with 20+ years of experience, generally interested in:
- embedded development and optimization
- data pipelines and data engineering
- networking infrastructure and distributed systems
- tooling for data analysis
Substantial professional experience using Linux, C, C++, Python3, SQL, and Forth.
Software Architect (Nov 2018–Aug 2020)
- Created core pipeline for data capture from prototype real-time embedded system.
- Designed pipeline and file format for neat integration with Python data processing ecosystem.
- Developed and debugged firmware for data capture, coordination, and transmission.
- Contributed open-source bugfixes to upstream Apache MyNewt.
- Created prototype algorithms platform for processing real-time data in embedded systems.
Systems Architect, Firmware Engineer (Jan 2014–Dec 2016)
- Responsible for implementation and optimization of various algorithms on the UP2/3 fitness trackers.
- Designed and implemented a fixed-point algorithms platform for running machine-learned classifiers.
- Device had extremely small footprint (48kb of RAM, 4MHz processor).
- Platform handled fixed-point overflow, error accumulation, transcendental function approximation.
- Developed a data pipeline, packaging data from prototype hardware into a ready-to-use format for R/MATLAB/Python.
Software Engineer (Nov 2008–May 2013)
- Designed and implemented iStats for defining and aggregating user-defined network statistics on BIG-IP load balancing clusters.
- Developed several internal tools and libraries to simplify and standardize development:
- regex redirector
- curses multitool for configuration, statistics, and debugging
- C++ asynchronous daemon library
Principal Software Engineer (Jan 2006–Dec 2007)
- Designed and implemented a Screen Definition Language (using XML, XPath, CSS) to allow easily customizable content.
- Analyzed and optimized memory consumption and processor usage on the Ibiza Rhapsody portable media player.
- Implemented an error-correcting Media Metadata Database conforming to Microsoft's MTP API.
Protocol Team Lead (Jan 2004–Dec 2005)
- Implemented substantial components of a proprietary mobile mesh-network protocol.
- Developed debugging tools to process logfiles and visualize routing decisions made during tests.
Wizards of the Coast (Hasbro)
Senior Software Engineer (Mar 2002–Dec 2003)
- Maintained the Magic Online servers and implemented new functionality.
- Improved scalability and performance on a complex distributed and multi-threaded architecture.
- Prototyped a new server architecture to simplify scalable development.
Software Engineer, Program Manager (Jun 1998–Dec 1999)
- Analyzed system-wide memory usage for Windows CE.
- Created kernel patch to improve responsiveness during extreme low-memory conditions.
- Implemented ISO8601 date/time functionality for advanced set-top box.
Open Source Projects
A powerful multitool for exploring data in the terminal. Easily wrangle gigabyte datasets from many different formats. Written in Python3 with very few dependencies and an extensible architecture.
70,000 crossword puzzles parsed and cleaned into a simple text format. The grid comparison analysis uncovered rampant self-plagiarism by a major crossword editor. The minimalist data pipeline is written in Python3 and deployed on AWS.
Bootable ISOs of classic games using custom unikernels. Minimal size, rapid bootup, curated experiences.
Recurse Center, New York (Spring 2017)
A 12-week self-study program in NYC. Studied open source development practices, participated in a game jam, and led workshops on kernel development and implementing Forth.
University of Illinois at Urbana-Champaign (1994–1998)
B.S. Computer Science '98