I am most experienced with MatLab, C++, and VHDL, which account for the grand majority of my research code. Below are representative samples in each language, selected to illustrate how I approach different classes of problems — from high-level automation and simulation down to low-level hardware design. These codes are mostly unmodified from their original research files; any comments were written for my own reference at the time.

MatLab

MATLAB
Instrument Control GitHub Repo
A repository of MatLab drivers for controlling common lab instruments that lacked pre-existing libraries. My colleagues and I rely on these extensively when automating experiments — covering signal generators, cameras, rotation stages, power meters, and more.
View on GitHub
Coupled Beam Power Transfer Simulation
Input the writing parameters for a set of multiplexed gratings; the code computes the equivalent k-vectors at the reading wavelengths, then uses a finite-difference technique to track power transfer between the input and diffracted beams as they propagate through the medium. Essential for designing WDM holograms.
View Code
Automated HOE Writing
Arguably the most-used program I've written. Connects to the automated HOE writing system and executes all programmed grating exposures from a CSV of parameters (writing angles, exposure times, etc.). Modular for single or multiplexed exposures; relies on the Instrument Control repo above.
View Code
HOE Angular Selectivity Measurement
Scans an HOE across an arbitrary angular range and records diffraction efficiency at each angle with up to 0.0005° resolution. A full disk with ~12 writing locations can be characterized in under an hour — versus several days by hand.
View Code

C++

C++
High-Speed Polar Mellin Transform via Parallel Computing
The PMT is computed as a log-polar coordinate transformation of the Fourier transform. This implementation uses CPU parallelization and a pre-computation strategy to achieve speeds below 900 µs per conversion for full-HD images (1920 × 1080 px) — the fastest on record. This is what enables 720 fps operation of the opto-electronic correlator. Development took approximately one month.
View Code
FT to PMT Converter (Reference Implementation)
A simpler, unoptimized reference implementation of the same FT-to-PMT conversion, intended for simulation rather than real-time use. Orders of magnitude slower, but written in ~20 minutes. A good illustration of the performance-versus-development-time tradeoff in scientific computing.
View Code

VHDL

VHDL
FPGA PMT — Top-Level Module
Top-level VHDL for an FPGA-based FT-to-PMT converter, communicating with a host computer via UART (USB). While FPGAs can be much faster than CPUs for this class of operations, UART bandwidth created a bottleneck — I later replaced it with a PCIe interface.
View Code
FPGA Direct Memory Access — Read Module
Configures and communicates with a PCIe-connected DMA module. Reads image data from the FPGA's RAM and transmits it to the host computer, enforcing correct data formatting and timing. Demonstrates how state machines are used to comply with memory and bus interface standards.
View Code
FPGA Direct Memory Access — Write Module
Companion to the read module. Accepts incoming frames from a camera, stores them in FPGA RAM via DMA, and maintains synchronization with the camera's Start-of-Frame and End-of-Line control signals — which have priority over the data bus.
View Code