### Interesting Projects

From time to time, I like to (or am forced to) do interesting, difficult, and/or fun projects. See a sample of these below.

### PCF

For my Master's thesis, I rewrote and improved a library for secure computation based on Yao's Garbled Circuits and applied it to the Stable Marriage Problem. We compiled programs written in a subset of C into circuits, then ran them through our very fast interpreter.

See my pcf and pcflib repositories on github.

### CitySwig

My pride and joy, CitySwig was a startup that tried to change the nightlife experience. We collected prices on alcohol at bars and grocery stores in three mid-size markets in Virginia and helped people decide where to go out.

I was a co-founder and the chief software engineer.

### Parallel MST with Image Analysis

For Operating Systems final project, my partner Katy Williamson and I implemented a parallel minimum spanning tree algorithm.
You can view the project on GitHub, or see some of the results below. Note that the project was built in Rust 0.8, which is now deprecated.

The general concept is that we can run an edge-detect function on an
image by computing its minimum spanning tree, sorting the edge weights (distance between pixel rgb values), and generating a new image with them.
By thresholding the edges we can also isolate portions of the image when borders are formed. This may or may not be a fast way to isolate faces in facial recognition situations.

### Conway's Game of Life is Turing Complete

For my Theory of Computation final project, I wrote a proof by simulation that Conway's Game of Life is Turing
complete by simulating circuits. I constructed gates for all of the basic boolean functions.
Below see a picture of a half-adder.