These are projects I owned or otherwise made major contributions to that someone was nice enough to pay me for.
A2 Background Jobs
A2 Hosting, Inc (Jan 2020)
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: mysql, php, whmcs, background jobs
Hosted Orders API
Envato Pty Ltd. (Jun 2018)
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.
Author Managed Designs
Envato Pty Ltd. (Mar 2018)
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, managed wordpress, php, rails 5, ruby, sidekiq, wordpress, wp-cli
Envato Pty Ltd. (Sep 2017 - Jul 2018)
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, managed wordpress, php, rails 5, ruby, rubygems, sidekiq, web hosting, wordpress, wordpress theme, wp-cli
LRT Sports, LLC (Dec 2016 - Present)
I developed the Rails application for LRT Sports, 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 5, recurly, ruby, sidekiq
MWP Admin Impersonation
Pressed, LLC (Oct 2016 - Jul 2018)
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, managed wordpress, php, rails 5, ruby, sidekiq, sinatra, wordpress, wordpress plugin
MWP Let's Encrypt
Pressed, LLC (Apr 2016 - Jul 2018)
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: automation, lets encrypt, managed wordpress, rails 5, ruby, sidekiq, wordpress
MWP Order Form
Pressed, LLC (Oct 2015 - Jul 2018)
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.
Pressed, LLC (Sep 2015 - Jul 2018)
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.
Pressed, LLC (Jul 2015 - Jul 2018)
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, managed wordpress, php, rails 5, ruby, sidekiq, wordpress, wp-cli
Campagna Restaurant, LLC (Apr 2015)
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, web hosting
World Wide Web Hosting, LLC (Apr 2014 - Aug 2016)
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.
World Wide Web Hosting, LLC (Jan 2013 - Jul 2015)
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 4, rails engines, ruby, rubygems, whmcs
World Wide Web Hosting, LLC (Sep 2011 - Present)
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.
World Wide Web Hosting, LLC (May 2011 - Jul 2015)
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.
Liberty Sports Group Theme
Liberty Sports Group, LLC (Apr 2011)
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, wordpress themes
ViaTalk, LLC (Oct 2010 - May 2011)
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.
DotBlock.com, Inc (Oct 2010 - May 2011)
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.
DotBlock Order Form
DotBlock.com, Inc (Aug 2010 - May 2011)
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.
ViaTalk, LLC (Apr 2010 - May 2011)
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.
Will Dikker, LLC (Jan 2009 - Apr 2009)
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: authorize.net, billing, consulting, design, marketplace, rails 2, ruby, rubygems, startup
ViaTalk, LLC (Dec 2008 - May 2011)
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.
ViaTalk, LLC (Dec 2008 - May 2011)
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.
ViaTalk, LLC (Aug 2008 - May 2011)
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.
Lebanon Valley Economic Development Corporation (Jul 2008)
Developed new company website using CodeIgniter and MySQL. Original site was written in ColdFusion and used Macromedia Contribute for content management.
Tags: codeigniter, consulting, css, mysql, php
ViaTalk, LLC (Jan 2008)
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.
Creative Dance Arts, LLC (Sep 2005 - Oct 2016)
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.
Inglenook Realty, Inc (May 2005 - May 2009)
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.
Crawford Insurance Agency (Nov 2004)
I designed the company website for Crawford Insurance Agency using Fireworks and Dreamweaver.
Tags: consulting, design
Childs Automotive (Sep 2002)
I designed the company website for Childs Automotive using Fireworks and Dreamweaver.
Tags: consulting, design