Here is a bit of stuff I’ve worked on. I have varied interests, so I included a smattering of projects.

data Maybe = Just "Something for everyone" | Nothing -- :-)


Master’s Thesis

Video showing output of algorithm:


Project Euler (Haskell, F#, Kotlin, Octave/Matlab)

Solutions and research around


War Card Game (C# and Native C++)

I was trying to understand how VM based languages (C#, Java, etc) are able to call across the Managed/Unmanaged ABI Boundary. This game mixes C# with unmanaged C++, and marshals objects across the boundary. The lesson learned is do not do this :-) Source:

Spatial Database (C++)

Wrapper around sqlite to store spatial information. Also an automated lemmings game. Source:

Custom Memory Allocator (C++)

I was trying to beat new’s performance using a coalescing memory allocation algorithm. Lesson learned: new is fast. It probably cheats its so fast.

Finite Automata Transformer (C++/Python)

Interestingly Nondeterministic, discrete finite automata (NFA) can be expressed as discrete finite automata (DFA). This is useful for state machines. This program converts between the two.

Game of Life (Parallelized with OpenMP) (C++)

Implementing game of life is like a rite of passage for programmers. I built a graphical front end to help debug it.

BlackJack Simulator (C++)

When I taught at ASU, the semester project I designed was to build a blackjack simulator. Eventually, each week’s assignment completed one aspect of the system until the final project where it would play blackjack with itself.

Monosyllabic Encryption Cracker (C++)

A security assignment was to crack some encrypted text. I wrote a hillclimbing algorithm to do it.


MinHash Similarity Algorithm (Java)

I was intrigued by the minhash similarity algorithm. It seemed like magic until I implemented it myself since Any sufficiently advanced [algorithm] is indistinguishable from magic. My apologies to Mr. Arthur C. Clark

LearnOnPurpose REST Server (Java)

I’ve been toying with an application idea for a while I call Learn on Purpose. Its part learning journal, part stump your friends… This is part of the backend REST service.


Pipelined MIPS Processor (Verilog, Synthesizable to Xilinx FPGA)

I took a computer architecture class. To wrap my head around the design of a MIPS processor I implemented it in Verilog. Includes a basic assembler to translate MIPS assembly.


MAC Address Allocator REST Service (Python/Django)

Production Automation tool for assigning MAC address to raw network PHYs during manufacture.