Sarah Vessels

Software dev and gamer

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.

Projects

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

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.

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.

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
Last.fm 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.

Snazzy Calculator
desktop app
May 2013

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.