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:

csullender.com/scholar

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:

csullender.com/live-music

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:

csullender.com/lastfm

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:

csullender.com/first.php

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:

csullender.com/swifting.php

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:

csullender.com/fitbit

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.


Recent trakt Activity:

csullender.com/trakt

Uses the Trakt.tv API and Python to scrape my recently-viewed TV shows and movies and displays a list featuring show banners and movie posters.


Alabama Amendments Tweetbot:

@BamaAmendments

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
csullender.com/dogecoin/address.php

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
csullender.com/dogecoin

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
@100BillionDoge

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
csullender.com/dogecoin/halving.php

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
csullender.com/dogecoin/blocktime.php

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.