« Home

Projects

View my work-related and side projects.

Professional Projects

Site
WikiMedia Education Foundation (via WINTR)
Role
Full-stack developer
Technologies
Ruby on Rails, MySQL, React.js, Mocha.js, CoffeeScript, ES2015, Stylus, Haml, Gulp
Summary

The WikiMedia Education Foundation approached WINTR with a very interesting project. The central problem was clear: How can we grow the Wikipedia editing community, more accessible to college students, and aid college professors to create syllabi to assign the editing or creation of Wikipedia articles for course credit.

I built several core features of the site over the course of about eight months. I was responsible for all aspects of feature delivery with the exception of visual desgin: the database design, Rails API architecture and implementation, and front end development in React.js. I utilized test-driven development throughout with RSpec, Capybara, and Mocha.js.

Site
CenturyLink Cloud (via WINTR)
Role
Full-stack developer
Technologies
Node.js, CoffeeScript, Travis CI
Summary

In CenturyLink Cloud’s bid to aggregate several cloud hosting capabilities under one roof, one aspect crucial to their ability to provide excellent service among all of their offerings was their knowledge base.

I built a custom test suite to run against CenturyLink Cloud’s knowledge base documentation. It parsed the Markdown documents and ensured proper formatting, correct metadata, and valid links and images. I also built it in a modular fashion: parsers were pluggable modules that were orchestrated by the parsing functionality to keep the suite extensible and maintainable.

Site
FritoLay2Go (via WINTR)
Role
Full-stack developer
Technologies
PHP, Laravel, MySQL, Custom Linux & Apache configuration, Stylus, ES2015, PHPUnit, Capistrano, Gulp, Webpack
Summary

FritoLay needed a compelling marketing site that could allow consumers to redeem UPC codes from their packages in return for a coupon code redeemable on the Fandango.com site for kids’ movie passes.

From an existing design, I implemented the entire site from start to finish. This included database modeling for tables with up to 10MM rows, MySQL, the Laravel web framework, PHP, ES2015, and Stylus.

The site also needed to be deployed on a dedicated hosting an environment, so I also performed all the server configuration and web server setup from scratch, and configured the application for automated deployments to both the production and staging environments.

Site
Navigating Cancer
Role
Software Engineer
Technologies
Ruby on Rails, Backbone.js, Jasmine, Haml, Sass, RSpec, Cucumber, MySQL
Summary

Navigating Cancer is a large web application with over 880,000 users, including oncologists, oncology patients, and a large and growing social support community. Main areas of functionality included a mobile medication adherence platform; medical oncology records, labs, and appointment scheduling; patient medical form completion; and support forums chemotherapy articles, and resources.

Over the course of three years, I was a core developer on the web application, deliverying features from the database to the front end and everywhere in between. In 2012, I completely redesigned and reimplmented the patient forms workflow, leading to a significant decrease in support calls. In 2013, I performed a large refactor of the transactional email funcationality and of the application and redesigned the templates for over 20 types of email at a volume of over 250,000 weekly emails. In 2014, I completed the development of a new, responsive homepage, boasting a 325%+ increase in average page load time. In 2014 and 2015, I was one of the core developers in the rewriting of the user authentication process using microservices, resulting in increased HIPAA compliance and security for all 880,000+ users of the site.

Side Projects

Name
Syllabize
Role
Creator
Technologies
Ruby, RSpec
Summary

Syllabize is a simple syllable parser written in Ruby. It is available as a gem, and its source code is available on GitHub.

Name
Support the Artist
Role
Creator
Technologies
Go, Last.fm API, IFTTT API, cron
Summary

Ever since I started using Spotify exclusively for listening to music, I have developed a bad habit of forgetting to actually buy albums and support the artist. This project runs on a cron job monthly. It gathers my most listened-to album over the past 30 days and sends me a text message telling me the number of listens and reminding me to buy the album.

Name
Weather Alert
Role
Creator
Technologies
Go, openweathermap.org API, IFTTT API, cron
Summary

I live on a boat here in Seattle, and our water supply comes through a hose in the marina. There are few Seattle nights on which the temperature drops below freezing, but when it does, our water supply hose freezes if we forget to turn it off, and leaves us without water for several hours in the morning. This project, written in Go, runs on a cron job nightly and, if the temperature is forecast to go below freezing, sends me a text message reminding me to disconnect our water supply hose.

Name
Two Hard Problems
Role
Creator
Technologies
Node.js, New York Times API, Twitter API, ES2015
Summary

According to Martin Fowler, the only two hard things in computer science are cache invalidation and naming things. There have been many formulaic jokes made on this theme, and I wondered if I could automate that process. The Two Hard Problems bot runs hourly, scrapes the New York Times API for interesting headlines, combines them into a joke, and posts it to Twitter.