These are projects I owned or otherwise made major contributions to that someone was nice enough to pay me for.


Storytime

Storytime is a custom Ruby gem that allows technical managers to quickly measure work done in our sprints. It uses the Jira API to pull in sprint reports and display them in a way that is easy to understand. I created the gem and use it weekly to report on our team’s progress across our projects.

Tags: API, Jira, Ruby


SOS Bot

I wrote SOS Bot in Ruby to sync up our PagerDuty on-callers with different Slack groups at A2. Each team designates a @sos-team style handle. On-callers are fetched from PagerDuty and automatically added to that group as their schedule changes.

Tags: Automation, GitHub Actions, PagerDuty, Ruby, Slack


A2 Background Jobs

A2 Background Jobs is a custom WHMCS module that allows developers to execute code via cron in the background — great for long running reports and the like. I created the module for WHMCS 7.9, migrated multiple reports, and helped other developers learn to work with the module in their own code.

Tags: Background Jobs, MySQL, PHP, WHMCS


a2d

a2d is a bash project that contains setup and utility scripts for applications at A2 Hosting. Based on sub, a2d allows new developers to bootstrap their application environments in hours compared to multi-day manual setups. I created the initial project and several scripts to setup our various applications.

Tags: Bash, CLI, PHP


Hosted Orders API

The Hosted Orders API is a Rails-based REST API used to create new subscriber and web hosting services in the Hosted billing system. This API is primarily designed for consumption by a React-based order form. I designed the full API and oversaw its release.

Tags: API, Automation, Billing, Javascript, Rails, React, Ruby, Sidekiq, WordPress


Author Managed Designs

Author Managed Designs is a project that allows WordPress theme authors on Envato Hosted to manage the state of their theme that is for sale. The author can sign in to a limited version of the Hosted Build Control Panel and provision demo sites with their themes. They can customize the site and then export it for use on our hosting platform. I helped with the release of the control panel and developed the archiving system.

Tags: Automation, PHP, Rails, Ruby, Sidekiq, WP-CLI, WordPress


Bender Builds

Bender Builds is a project to automate the installation of WordPress themes and plugins for customers of Envato Hosted. It allows administrators to quickly bundle themes and their dependencies, providing near-instant website setup for new customers. On the backend, Capybara simulates a WordPress installation, including plugin installation and general configuration. The Hosted billing system coordinates the build process for each theme. I worked on a large portion of the backend project responsible for packaging the themes, and I implemented integration with this system into the Hosted billing system.

Tags: Automation, Capybara, Circle CI, PHP, Rails, Ruby, RubyGems, Sidekiq, WP-CLI, WordPress


MWP Lazy Upgrader

MWP Lazy Upgrader is a custom WordPress plugin that improves performance for theme and plugin upgrades on a network filesystem. On network filesystems, these operations are slow and can timeout for users in WP Admin. Lazy Upgrader works around these limitations by deferring filesystem writes to a background job and using symbolic links to install themes and plugins instantly once source files are available over the network.

Tags: Automation, Bash, PHP, WP-CLI, WordPress


2adays.com

I developed the Rails application for 2adays.com, a website that helps student athletes through the college recruiting process. My work involved replacing an existing coach and school search directory with a fully custom one. The Rails application is responsible for pulling information from a third party API for coaches and schools, and formatting the date for use in student searches and ratings. Recently, I implemented a new recurring subscription service.

Tags: API, Automation, Billing, Consulting, Rails, Recurly, Ruby, Sidekiq


MWP Admin Impersonation

MWP Admin Impersonation allows staff and customers to securely sign in to WordPress Admin from the Envato Hosted Rails applications — without the need for a password. I created the WordPress plugin that handles authentication and oversaw its deployment to the Hosted platform, and also integrated it with the Hosted Rails applications.

Tags: API, Automation, Bash, PHP, Rails, Ruby, Sidekiq, Sinatra, WordPress


MWP Let’s Encrypt

We use Let’s Encrypt to provide SSL support for customer websites at Pressed. Record keeping and provisioning certificates is handled by a Rails-based billing system. Certificates are sent to the hosting platform for installation on customer websites. I helped with the initial implementation and deployment.

Tags: API, Automation, Let’s Encrypt, Rails, Ruby, Sidekiq, WordPress


MWP Order Form

The Pressed MWP Order Form is a white-labeled form available to different brands. It allows their customers to order Managed WordPress hosting. Customer information is stored in a Rails billing system and used to provision their websites. I was a lead developer involved with several different implementations of the order form over the years, including the front end UI and the backend provisioning process.

Tags: AWS, CSS, CoffeeScript, Javascript, Rails, Rspec, Ruby, RubyGems, SCSS, Sidekiq, Travis CI, jQuery


Partner Panel

The Pressed Partner Panel allows brands to manage their web hosting customer and sales with Pressed. It includes a variety of reports based on customer data, protected when necessary. A custom permission system allows different partners different levels of access to data and troubleshooting tools. I was a lead developer on the project and helped ship the initial version.

Tags: AWS, CSS, CoffeeScript, Javascript, Rails, Rspec, Ruby, RubyGems, SCSS, Sidekiq, Travis CI, jQuery


Pressed Bundles

Pressed Bundles allow customers to order web hosting with preinstalled WordPress themes. I was the lead developer tasked with automating the installation process of several dozen WordPress themes, in many cases implementing custom WP-CLI plugins. I also lead the integration of this installation process into our custom Rails-based billing system, including general record keeping and the customer order UI/UX.

Tags: Automation, Capybara, PHP, Rails, Ruby, Sidekiq, WP-CLI, WordPress


Campagna Restaurant

I worked with Allusis Productions to automate the deployment process for Campagna Restaurant. A traditional PHP deployment left the site open to possible bugs and downtime. I configured the existing application to support staging and production environments, automated deploys, caching, and easy backups. I also setup monitoring and integration testing to help avoid downtime.

Tags: Automation, Capistrano, Consulting, Ruby, Statamic


Website.me

Website.me is a free service provided by World Wide Web Hosting that provides a Single Sign On solution for cPanel and WordPress accounts. I was the project lead and helped with its initial implementation and deployment with another developer. The application was written using Ruby on Rails, PostgreSQL, jQuery, Coffeescript, and SCSS, and integrated directly with our in-house billing system, Helix.

Tags: AWS, CoffeeScript, Javascript, Linux, PostgreSQL, Rails, Ruby, RubyGems, SCSS, jQuery


Wormhole

Wormhole is a custom built RubyGem that is used to export customer billing information from WHMCS into our in-house billing system, Helix. I created the initial implementation and oversaw the successful migration of several thousand clients from WHMCS into Helix. The library was created using Ruby, PostgreSQL and MySQL.

Tags: MySQL, PHP, PostgreSQL, Rails, Rails Engines, Ruby, RubyGems, WHMCS


Helix

Helix is a custom built billing system that is used by staff and customers to manage web hosting services. I have been a lead developer on this project since it’s inception. I helped create and deploy the initial implementation, including the UI, while at World Wide Web Hosting, and currently maintain it with the software engineering team at Pressed. The application was designed using Ruby on Rails, PostgreSQL, jQuery, Coffeescript, and SCSS on top of AWS. Helix also includes several supplemental Rails applications and Ruby gems which I helped implement and deploy.

Tags: AWS, Coffeescript, Javascript, Linux, PostgreSQL, Rails, Rails Engines, Ruby, RubyGems, SCSS, jQuery


Synco

Synco is a web application that allows customers to sign up and manage their services, and allows staff to manage customers and services. I joined this project after its initial development while it was nearing end of life. I was responsible for security updates and implementing critical new features.

Tags: Javascript, Linux, MySQL, Rails, Ruby, RubyGems


Liberty Sports Group Theme

I worked with Allusis Productions to develop a fully custom WordPress site for Liberty Sports Group. I implemented the sites WordPress theme and multiple plugins to improve the admin experience. I also oversaw the initial deployment of the website.

Tags: Consulting, PHP, WordPress


iZabbix

iZabbix is an iPhone application used internally by VoIP engineers to receive alerts from Zabbix. The iPhone application was designed using Appcelerator Titanium. The supporting API was designed using Ruby on Rails and is responsible for relaying alerts from Zabbix to users’ phones using a custom built RubyGem to communicate with the Apple Push Notification Service.

Tags: Appcelerator Titanium, Apple Push Notifications, Javascript, Linux, MySQL, Rails, Ruby, RubyGems


DotBlock Mobile

DotBlock Mobile is an iPhone application that allows customers to manage their accounts and VPSs. The iPhone application was designed using Appcelerator Titanium. The supporting API was designed using Ruby and Sinatra, and is responsible for fetching customer info and issuing commands to VPS hypervisors. I also worked on public documentation for the API and implemented wrappers in several languages to allow DotBlock customers to easily build software around their VPSs.

Tags: Appcelerator Titanium, Bash, Javascript, Linux, MySQL, Open Source, Ruby, RubyGems, Sinatra, SolusVM, WHMCS


DotBlock Order Form

DotBlock Order Form is the web application used to accept customer orders at dotblock.com. It was designed using Ruby on Rails and jQuery and custom RubyGems that communicate with the existing billing system.

Tags: CSS, Javascript, MySQL, PHP, Rails, Ruby, WHMCS, jQuery


Ennouncement

Ennouncement is a web application that allows users to broadcast important voice messages to groups of users. The web application was designed using Ruby on Rails, MySQL and jQuery. I also worked on integrating this service with the ViaTalk Control Panel to allow ViaTalk customers to use call broadcasting features.

Tags: Apache, Asterisk, CSS, Javascript, Linux, MySQL, Rails, Ruby, VoIP, jQuery


Will Dikker

I was the lead consultant for a local startup, Will Dikker, which provides a marketplace for used cars, trucks, and more. Users receive free Will Dikker Stikkers with an SMS shortcode that can be texted for more information on an item. I handled all backend development on the Rails application, including integration with Air2Web for SMS communications, billing via Authorize.net, and server setup.

Tags: Billing, Consulting, Design, Marketplace, Rails, Ruby, RubyGems, Startup, authorize.net


cp.viatalk.com

ViaTalk Control Panel (cp.viatalk.com) is a web application that allows customers to sign up and manage their services, and allows staff to manage customers and services. The application was designed using Ruby on Rails, MySQL and jQuery and was tightly integrated with the ViaTalk VoIP platform. I joined the project after its initial development, and was the sole developer responsible for ongoing maintenance, security updates, and implementation of new features. I migrated the project’s code repository from SVN to Git and improved average deploy times from over 10 minutes to under 30 seconds.

Tags: Apache, Asterisk, CSS, Javascript, Linux, MySQL, PHP, Rails, Ruby, RubyGems, SVN, Voip, jQuery


letscallsanta.com

letscallsanta.com is a free service that lets children leave a voicemail for Santa to let him know what they’d like for Christmas. The voicemail is delivered to parents via email and can be shared on Facebook and Twitter or made public on the letscallsanta.com site. The web application was designed using CodeIgniter, MySQL, and jQuery; in 2009 I rewrote the application in Ruby on Rails. This project was initially completed in about 1 week and remains one of my favorite projects I’ve worked on.

Tags: Asterisk, CSS, CodeIgniter, Javascript, Linux, MySQL, PHP, Rails, Ruby, VoIP, jQuery


ViaTalk PBX

ViaTalk PBX is an VoIP/web application that powers support calls for ViaTalk, HostRocket, and DotBlock. The application handles routing incoming calls to support queues, call detail record logging, and displaying an overview of past and current calls. I was responsible for the entire application including server setup and maintenance. The backend VoIP application was designed using Asterisk and MySQL. The web application was designed using PHP, CodeIgniter, and MySQL. ViaTalk PBX served 500-1000 of daily support calls and had nearly perfect uptime under my care.

Tags: Asterisk, CSS, CodeIgniter, Javascript, Linux, MySQL, PHP, VoIP, jQuery


lvedc.org

Developed new company website using CodeIgniter and MySQL. Original site was written in ColdFusion and used Macromedia Contribute for content management.

Tags: CSS, CodeIgniter, Consulting, MySQL, PHP


Trackmaster

Developed ViaTalk’s Trackmaster application, used to track employee work trends and ViaTalk support/billing call history. Trackmaster interconnects with ViaTalk’s phone and email support systems to deliver real-time statistics. Trackmaster also includes a Firefox plugin used by ViaTalk Shipping and Porting to track their daily jobs.

Tags: API, CodeIgniter, Firefox Plugin, Javascript, MySQL, PHP, jQuery


creativedancearts.org

I developed 3 major versions of the company website for Creative Dance Arts over the course of 11 years, including two custom WordPress themes. The I trained the Artistic Director on the use of WordPress to manage the site’s content and monitor visitors. I also provided support for the site’s 200+ users when classes were in session.

Tags: CSS, Consulting, Javascript, MySQL, PHP, WordPress, jQuery


inglenookrealtyinc.com

I developed the company website and content management system using CodeIgniter and MySQL. I worked directly with the client to fine tune the website exactly to their specifications, and performed several upgrades to meet the changing needs of their customers and the real estate market.

Tags: CSS, CodeIgniter, Consulting, Design, Javascript, MySQL, PHP, jQuery


crawfordinsagency.com

I designed the company website for Crawford Insurance Agency using Fireworks and Dreamweaver.

Tags: Consulting, Design, PHP


childsautomotive.com

I designed the company website for Childs Automotive using Fireworks and Dreamweaver.

Tags: Consulting, Design