HTTPS for Custom Domains [link]

Goal: extend the protection of HTTPS to member websites that use custom domains, without the member needing to do any additional setup or incur any cost. Certs must be generated and renewed automatically.

Tech: Let's Encrypt/Certbot for on-demand cert generation and automated renewals, PostgreSQL for data, OpenSSL for cert debugging, HAProxy for SSL termination, LsyncD for cert distribution.

Screenshot of CNAME and HTTPS status.

Departures Board

Goal: modeled after the departures boards at airports, this status board shows scheduled code deployments so stakeholders can see, at a glance, what's shipping. It's displayed on a monitor near PhotoShelter's developers, and embedded in Jira dashboards.

Tech: CSS Grid, Google Calendar API, JWT.

Screenshot of departues board status tool.

PhotoShelter Member Dashboard [link]

Goal: demonstrate value and create stickiness by building a data-rich member dashboard. As sole dev on the project, my tasks ranged from automating daily API queries and CRUD, to generating compelling graphs and optimizing UI.

Tech: Google Analytics Core Reporting API for data, d3.js for visualization, Isotope for layout.

Design credit: Kim Burgas

Screenshot of site analytics on an interactive dashboard.

Black Diaries Wesbsite [link]

Goal: create an engaging, mobile-optimized, easy to manage website for a budding nonprofit.

Tech: Wordpress, Bootstrap, Sass, LAMP VPS setup.

Screenshot of the Black Diaries website homepage.

PhotoShelter Embeddable Signup [link]

Goal: streamline the signup flow by creating a new version of the signup form that could be launched as a modal or embedded on specific campaign landing pages. This is now the primary path for new signups and has widened the new user funnel.

Tech: Underscore.js, custom jQuery plugin.

Design credit: Todd Owyoung

Screenshot of a signup modal that has been embedded on a webpage.