Howdy! I'm a software developer at GitHub, working out of Nashville, Tennessee. I love black tea and electropop, puns and hot chicken. When I'm not writing code, I'm playing video games like Overwatch and Civilization VI. I sometimes blog about video games and tech.

Some of the features I've worked on in my time at GitHub include pinned repositories, private graph contributions, user profile timelines, and repository topics.


Competiwatch web app February 2018

Track your competitive Overwatch matches across multiple seasons. Log which heroes you play, who you group with, whether there were any throwers or leavers, and what maps you play on. See charts showing your statistics and share your seasons with friends.

Perpetuaspotify web app April 2017

View the songs you’ve listened to most recently on Spotify. From those songs, a list of recommended songs is generated. You can fiddle with how those recommendations are generated to tweak the results. Then, create a playlist of those recommended songs. Listen to that playlist and do the whole process over again.

Spotify Slack Status Slack integration April 2017

Update your Slack status based on the track you’re currently listening to in Spotify.

Overwatch Team Compositions web app March 2017

Plan team compositions for your Overwatch group for each map. Organize which of your friends is filling which role, who is playing which hero on particular map segments. Specify your own “hero pool” based on how well you think you play each hero.

Gym Spends web app February 2017

This simple web app will calculate how much you’re spending per gym visit based on your monthly membership fee and how many times you’ve checked into a gym on Swarm.

More projects →

Spotty Features web app February 2017

This uses Spotify’s audio features API to show trends in your listening history. It graphs changes to the average acousticness, instrumentalness, energy, danceability, and other audio features in your music over time. It also lets you create playlists based on a specified song or artist, while allowing you to tweak audio features of your query to find songs that match those features.

Overwatch Counter Picker web app December 2016

In Blizzard’s game Overwatch, the heroes that people pick on your team and on the enemy team can really affect how effective you are playing a given hero. This is a web app that lets you upload a screenshot you take in-game that shows who is on each team. The app uses OpenCV to determine which heroes are present on which team, then determines the best hero for you to play based on that composition.

GitHub Notifications Snoozer desktop app July 2016

This is a desktop app written in Electron that lets you manage issues and pull requests on GitHub. You can define filters for which issues/PRs you’re interested in, such as those that are still open and mention you, and then view a list of the ones that match. It offers a flow akin to the Mailbox app where you can dismiss an issue/PR for a day before it resurfaces in the app, ignore it forever, or archive it until there is new activity in that thread. The goal is to let you ignore email and web notifications from GitHub and instead triage issues and PRs entirely in the app.

HuxleyFM desktop app May 2016

This is a desktop application for Windows, OS X, and Linux, built using Electron. It lets you play SomaFM Internet radio stations as well as Chromecast them to either a regular Chromecast or a Chromecast Audio. It displays desktop notifications when the song changes. It shows a list of the recent tracks that have played on the current station, as well as the listener count and DJ name. Includes both a dark and a light theme.

Steam Palettes web app May 2016

A rewrite of my old Steamy Screenshots project, this is a React web app that lets you get color palettes from your Steam video game screenshots. It uses both Panic’s iTunes album art color algorithm and the Color Thief library to extract pleasing colors from images. It uses the tinycolor library to get variations of those colors. You can create color palettes on COLOURlovers from each screenshot.

Hue Steamer web app January 2016

This web app is intended to be run on your local network to control your Philips Hue lights. It allows you to change colors of individual lights as well as groups of lights. You can also create and delete groups and view schedules.

Cheevo Plotter web app January 2016

Compare your Steam achievements with your friends’ across games you share. See which people have unlocked which achievements. Shows simple bar graphs with a count of each person’s unlocked achievements in that game, as well as all the achievements the game has. Can also be used to see which games you and your friends have in common.

Steamfit web app December 2015

Correlate your Steam activity with your Fitbit activity. Look at your last two weeks’ worth of activity on both Steam and Fitbit, including which games you’ve played for how long and how many steps you’ve taken. If you didn’t meet your personal Fitbit step goal for the two weeks and you played games on Steam, it chastises you for not walking enough.

Candyfair web app October 2015

Rate candy along with your friends/office/family and the app will tell you how best to divide it based on preferences. Shows statistics about the most popular candies, least popular candies, and pickiest eaters. Uses a gem to provide Wikipedia excerpts and photos for candies. Uses Devise for authentication.

Instavibrant web app July 2015

View your Instagram photos and extract their colors using Vibrant.js. Also browse Instagram users you follow and get colors from their photos. Lets you create palettes on COLOURlovers.

Girtib Treller web app June 2015

Trawl through your Github commits, grouped by week and month. I built this to help me fill out time sheets, specifically what work I did in a given week. Also view closed pull requests and issues by anyone in the repository for a chosen time range.

Steamy Screenshots web app April 2015

This app lets you view a given Steam user’s screenshots as well as screenshots for a particular game. It extracts the colors from screenshots and colorizes the page to match, like how album cover art is presented in iTunes. The app lets you copy colors as well as create palettes on COLOURlovers from each screenshot.

Steam Screenshots RSS RSS feed and JSON API April 2015

A Sinatra web app that produces an RSS feed of the screenshots a given user has shared on Steam. Also provides a JSON endpoint with the screenshots from a specified game on Steam, regardless of user. Another JSON endpoint lets you fetch details about the app from a given Steam screenshot URL. Uses Mechanize to scrape image URLs and other details from Steam community pages.

SVG Scribbler web paint app March 2015

A painting app that produces SVG vector images. You can view the source code of the images as well as download them. Since they’re SVG, they have a very small file size. Has a couple different brush types and allows changing size, color, and fill of your scribbles. Scribbles can be changed later or deleted.

BlicblockJS web game September 2014

A JavaScript implementation of the game Blicblock from The Sims 4. This tries to recreate the same look and feel of the game that your Sims play. I’m a big fan of The Sims series and wanted to make Blicblock a reality once I realized it looked like a real game my Sims were playing, and not just a bunch of flashing colors.

SeasonSound web app August 2014

An AngularJS and Sinatra app that lets you turn your scrobbling history on for each season into Rdio and Spotify playlists. You can also export your playlists as CSV and JSON files. I wanted to be able to look back and say things like “that was the summer I really got into Florence + the Machine”.

Palette Producer web app August 2014

An AngularJS app for creating color palettes and pretty colors. You can easily save palettes to ColourLovers, as well as copy color values in different formats. I wanted a way to generate palettes for use in web design and making tiling patterns on ColourLovers.

evaluatjon web app August 2014

An AngularJS and Ruby on Rails app that lets you rate my boyfriend Jon on whatever metric you see fit. This started out as a joke, then I bought the domain name, then I couldn’t just sit on the domain name and do nothing with it, so this app was born. website April 2014

A Jekyll site about our women’s programming club I helped create with the other club members.

ColourLoving mobile app February 2014

An Android app for browsing palettes and colors on ColourLovers, as well as creating your own.

gulp-ruby-haml plugin for build tool February 2014

A Gulp plugin for compiling your Haml files into HTML using the Ruby implementation of Haml. I wrote this after I found the JavaScript implementation of Haml not as full-featured as Ruby’s Haml.

Weekly Rdio Playlister web app December 2013

An AngularJS and Sinatra app that lets you turn your weekly scrobbling history on into Rdio playlists.

RVocalware command-line script May 2013

A command-line Ruby script that uses the Vocalware HTTP REST API to convert text to an audio file of speech.

Snazzy Calculator desktop app May 2013

A GTK# GUI calculator written in C# that supports exponentiation and parentheses and follows PEMDAS. Written so I could experiment with GTK# and MonoDevelop.

Web App Test Case Generators command-line scripts May 2013

Two web-scraper Ruby scripts for use in generating test cases for Ruby on Rails web applications. This was my Master’s project at the University of Kentucky. See also my defense presentation for a better explanation of the project.

Chrome Extensions

Sounds of GitHub

A Chrome extension that plays sound effects when you leave reactions on GitHub. Plays a different sound for 👍, 👎, ❤️, 😄, 🎉, and 😕. Has different sound packs, including Super Mario, Bastion from Overwatch, and D.Va from Overwatch.

Hamburger Menu

A Chrome extension for replacing so-called “hamburger menu” icons around the web with a literal hamburger or hotdog, as the user prefers. Can also be used to override nearly any element in the page and replace it with a hamburger or hotdog.


An unofficial extension for playing SomaFM Internet radio stations in your browser while scrobbling to Includes desktop notifications when the song changes. Offers a dark and a light theme.

More extensions →


A Chrome extension that uses Adnan Topal’s extractCSS library to extract CSS classes and IDs from the current tab and produce an empty stylesheet for use with web development.

YouTube to Spotify Playlister

A Chrome extension that lets you map YouTube videos to tracks in Spotify, for the purpose of creating playlists. Especially useful when browsing music-related subreddits on Reddit.

Reddit Significant Other Notifier

A Chrome extension that notifies you of new Reddit posts and comments by a particular user. Created to humor my boyfriend because he was tired of me pestering him to upvote my posts all the time.

Colour Extractor

A Chrome extension that pulls colors from the current web page and lets you make a ColourLovers palette from them. Intended to help web designers identify palettes being used on different web sites.

Page Colourizer

A Chrome extension that grabs a random ColourLovers palette and applies it to the current page. Can also apply a random pattern as the page background.