Perpetually inquisitive Data Scientist.">
I am a regular contributor to /r/DataIsBeautiful, a data visualization community on Reddit. A few of my posts have been quite popular on the site, collectively receiving more than a million views. You can take a look at the list of all of my posts or check out one of the popular ones below:
Facer is a Python package I wrote that simplifies the process of creating average face images. The package draws heavily from a preexisting tutorial written by Satya Mallick. The majority of my work consisted of updating the tutorial’s code to work with Python 3 and the latest version of OpenCV. I also added streamlined functions to go straight from a directory of images to an averaged face or animated GIF. I used Facer in a popular Reddit post, which in turn inspired other users’ posts on Reddit.
Spoonacular is a food and recipe website that offers a freemium API with over fifty different endpoints. The API even includes endpoints for random food jokes and wine pairings! I developed
spoonacular, a Python package that interfaces with the Spoonacular API and makes it easy to download food, recipe, and nutrition data from the website. I wrote unit tests for each of the endpoints and have continuous integration running on Travis-CI. The package is available for installation via
Sportradar is a company that provides extensive APIs for a number of professional sports including soccer, basketball, and multiple eSports leagues. I wrote a
sportradar, a Python package that simplifies the process of downloading data from Sportradar’s APIs. A fun part of the project was writing a script to scrape the Sportradar documentation and automatically generate functional Python code and unit tests for each API endpoint. My analysis of data from the 2018 FIFA World Cup made use of
sportradar and provides a few example use cases. The project is available via
As part of my masters program at the University of Iowa, I worked as a research assistant in Dr. Mona Garvin’s image processing lab. My research in Dr. Garvin’s lab focused on the development of automated diagnostic tools for diseases of the retina. Specifically, I trained machine learning classifiers to use the characteristic shapes of retinal layers to differentiate between two types of optic disc swelling, papilledema and NAION. My research in the Garvin Lab culminated with a poster presentation at ARVO 2018 and the defense of my thesis.
LyricsGenius is a Python package I wrote that allows users to programmatically access lyrics, artist information, and song media from Genius.com. Genius is a fun website that lets users upload song lyrics and collaborate on annotations and interpretations of artists’ words. I wanted a simple way to download lots of song lyrics at once, so I thought I’d write a Python wrapper for the API Genius provides. The code is hosted on GitHub and can be installed using PyPI. I used LyricsGenius for my analysis of country song lyrics.
Fivecircle is a geo-based social media platform I built with a five-person team as part of a software engineering course I took in the fall of 2017. The web app lets users post geo-tagged photos and notes for other users to view. We built Fivecircle using Ruby on Rails while following an Agile methodology and maintaining best practices on our GitHub repository. We made use of the Google Maps API for geocoding as well as the devise ruby gem for authentication. Sign up for an account and start sharing posts!
For the final project in my Advanced Digital Image Processing course, I chose to research and implement active shape models a technique originally developed by Tim Cootes et al. in 1995. My Matlab code trains a point distribution model from a manually-labeled set of images of faces and is then able to successfully locate faces in new images using the ASM technique. Check out my GitHub repository for a complete description of the project.
During the spring of 2017 I built an electromyography (EMG) audio amplifier. The two-channel device was built from analog integrated circuit components (op-amps, instrumentation amps, and audio amps), included band-pass filters, and could output audio through a standard 1/8” audio jack. Visit the link for images and schematics of the device as well as detailed instructions for building your own. After I published my project to the Instructables website the HackADay blog featured my work and Tweeted a link out to their 100K+ followers!
During the winter of 2017, I built an electromyography (EMG) amplifier which allowed users to trigger MIDI instrument sounds (e.g. a snare drum) by flexing their muscles. The device used muscle activity as a control signal for both volume and pitch of the MIDI notes. After the muscle activity was amplified and filtered via a custom-built analog circuit, an Arduino translated the EMG signals into MIDI signals which were then sent over Bluetooth to an iPhone running Garageband. I ended up winning second prize in the Instructables Sensors 2017 contest.
For Halloween 2016 I designed and built a fully functioning MIDI drum machine costume. The costume consisted of piezoelectric sensors worn on the chest which sent signals into an Arduino when tapped. I wrote code for the Arduino that translated the raw force signals into MIDI commands which were sent to an iPhone running GarageBand. The iPhone then played drum noises (triggered by the sensors on my chest) through a Bluetooth speaker. I wrote a description of the project along with a step-by-step tutorial for Instructables.
During the summer of 2011 I worked on the “Musician Maker” project as part of Goshen College’s Maple Scholars Program. Musician Maker is an intuitive, computer-controlled system of novel instruments that allows non-musicians to improvise expressive music. During the winter of 2012 my advisor and physics professor, Dr. John Buschert, and I competed in and were selected as finalists for the 2012 Guthman New Musical Instrument Competition hosted at Georgia Tech. I wrote multi-threaded Python code that generated artificial music and interfaced with the novel hardware instruments.