My Work
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
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
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
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