I build systems from the inside out: a fly-brain controller for a real drone, a chess engine you can play here, and a neural network that learns to drive.
In progress — the core system is working; final flight testing and tuning remain.
A DJI Tello controller powered by a simulated slice of a fruit fly's nervous system. Camera motion becomes neural activity; descending-neuron spikes become escape and steering commands.
The current network models 418 neurons and 10,911 measured FlyWire synapses within a 33 ms control-loop budget. The looming circuit detected 5/5 swats with no false positives in hardware tests, while a DNg02 population circuit turns optic flow into graded thrust and yaw correction.
Camera motion / spiking neural circuit / motor command
camera → 10,911 synapses → flight command
02 / Jan 2026
Searching for a better move
Python · Alpha-beta search · UCI
Python
A chess engine with its own search, evaluation, and rule handling. Make a move and play against it right here.
Alpha-beta pruning cuts off branches that cannot improve the result. Transposition tables reuse work when different move sequences reach the same position; incremental state updates reduce the work needed for each move.
The interesting part: deciding what not to search.
03 / Mar 2026
Teaching a network to drive
C · OpenGL · Python · Reinforcement learning
C
OpenGL
Python
A physics simulator in C and a driving policy trained from scratch, including the neural network's forward pass, backpropagation, and gradient descent. No ML libraries.
The car senses the track with ray casts. A quadtree narrows down collision and sensor queries, while a policy-gradient algorithm trains the driver over 30,000+ episodes.
Inside the simulator / ray-casting sensors (schematic)
Build the world. Then teach the driver.
04 / Nov 2025
When will the sap run?
Python · FastAPI · JavaScript · Geospatial data
Python
FastAPI
JavaScript
A forecasting application for maple sap-flow windows, using climate and geospatial observations to find seasonal patterns.
The data pipeline turns 20+ years of climate data and 500K+ geospatial observations into model-ready features through normalization, feature engineering, and trend analysis.
I worked on tools for tracking engineering requests: a Power BI dashboard, connected data in Azure SQL and Oracle, and Power Apps for linking work packages to requests.
Custom JavaScript handled many-to-many record relationships. Power Automate workflows handled updates and request routing, reducing manual entry and tracking errors.
03 /
A little background
I like building the parts that usually come in a library.
For me, that has meant writing a chess engine's search and evaluation, implementing backpropagation, and building a spatial index for a physics simulation. My interests sit around performance, machine learning, and chess.