Follow me on GitHub and LinkedIn

/r/science AMA Analytics

Monitors the /r/science subreddit for new ‘Ask Me Anything’ submissions and tracks the performance of the post over the next 24 hours. Uses PRAW to grab the score, views, and ranking of submissions and stores the results in a MySQL database. Charts are generated with Matplotlib and displayed on a dashboard using PHP + Javascript.

Scholar Plotr

Scrapes Google Scholar search results to generate annual publication frequency charts for a specific query. Uses a combination of Javascript and Google Apps Script to overcome Google’s anti-scraping protection. Dear Google, please please please implement an API for Google Scholar.

Bands I’ve Seen Live

Lists every band I’ve seen perform live in concert. Uses the LastFM API to grab a photograph of the artist and displays in a simple grid generated using the CSS flex property.

LastFM Listening History

Uses the LastFM API and Python to scrape my weekly, yearly, and overall most listened-to artists, albums, and tracks. Loads and displays entries asynchronously using jQuery and PHP.

LastFM First Listen

Input a LastFM username and an artist to get the first time the user ever scrobbled the artist and the name of the corresponding song. Implemented completely in PHP.

The Last Swifting

Input a LastFM username to see the last time that user listened to a Taylor Swift song (if ever). Results are asynchronously loaded using jQuery and PHP.

Fitbit History

Uses the Fitbit API and Python to scrape my daily step count and sleep estimate to generate a dashboard-style website depicting a variety of statistics about my activity. Data is visualized using Google Charts.

Trakt Viewing History

Uses the Trakt and TMDb APIs and Python to scrape my recently-viewed TV shows and movies and displays a list featuring episode stills and movie posters.

Alabama Amendments Tweetbot


Uses the Twitter API and Python to post a daily tweet for each of the over 900 amendments to the 1901 Alabama Constitution.

Twitter Analytics Dashboard

Deprecated in November 2015

Regularly scraped all my tweets using Python to build a mirror of the downloadable Twitter archive. Parsed content to extract a variety of metrics including monthly, hourly, and weekly activity, frequency of interactions, tweet length, and most commonly used words. Generated a dashboard-style website using a combination of HTML and Google Charts.

Dogecoin Address Analysis

Deprecated in September 2015

Scraped transaction data from Dogechain to generate a timeline and histogram of an individual Dogecoin address’ balance over time. Powered by PHP and visualized with Google Charts.

100 Billion Dogecoin Countdown

Deprecated in June 2015

Estimated the time remaining until the 100 billionth Dogecoin was mined based on information from the SoChain API. Displayed as a Javascript countdown timer.

Dogecoin Tweetbot

Deprecated in June 2015

Used the Twitter API and Python to tweet hourly updates about the remaining time until the each Dogecoin block reward halving and the mining of the 100 billionth Dogecoin.

Dogecoin Halving Countdown

Deprecated in February 2015

Estimated the time remaining until the next Dogecoin block reward halving based on information from the Dogechain API. Displayed as a Javascript countdown timer.

Dogecoin Block Discovery

Deprecated in December 2014

Used the Dogechain API and Python to scrape block timing information. Visualized the timeline and histogram of the Dogecoin block discovery times since inception using Google Charts.

Destiny Countdown

Deprecated in September 2014

Javascript countdown to the release of Bungie’s new game Destiny.

Real-Time Location Tracker

Deprecated in 2013

Grabbed location information from a now-defunct Android location tracking app and displayed path on a dynamically updated Google Map along with current speed and total travel time and distance. Rendered obsolete by Google’s Share My Location and Apple’s Find My Friends features.