Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2404 of /mnt/stor1-wc1-dfw1/376356/

What I Do

I am a web developer, and I specialize in the Drupal CMS.

Unfortunately, as I primarily subcontract for other shops with non-disclosure agreements as part of the contract, it is difficult to demonstrate a traditional portfolio of work. However, here are some descriptions of the types of problems and resulting solutions I've architected and implemented for my clients.

Drupal itself!

Over time, I've contributed code and patches to Drupal 5, 6, 7 & 8. While I don't have numbers for Drupal 5 and 6, I've contributed to 33 patches for Drupal 7 and 11 patches for Drupal 8.

Additionally, I've contributed or maintained the following Drupal contributed modules:

Large Media Portal

I am currently involved in the maintenance and development of a large media portal. This project is implemented in Drupal 7, but has some unique challenges as it has to cache a minimum of 6 months-worth data for millions of users otherwise only available over a slow API. At one time, this project had one of the largest databases hosted at Acquia until we were able to optimize the data storage resulting in a 80% reduction in used storage space. In addition to optimizing the database storage, we have been able to improve every end-user performance metric across the project significantly.

Real time document management and Collaboration system

in 2012, I designed and developed a workgroup-based document management and realtime collaboration system based on Drupal 7 for Transport Canada. This project had been under way for several months, and had well documented specifications representing the needs of a large body of stakeholders across Transport Canada. Unfortunately, there was already in existence an very poorly executed Drupal 6-based implementation.

As part of a small team of three developers, we made a case for a fresh start using Drupal 7 and it's entity support. Upon getting approval, we were able to rebuild the project over the course of 2 months. We developed a complete collaborative workflow including state tracking, document access permissions and more. We used LDAP -based authentication. We integrated Etherpad to power the collaborative document editing. Additionally, we were able to contribute a series of improvements to the Oracle driver for Drupal as well as contribute compatibility patches to various contrib modules.

Conference management and Registration system

I lead the architecture and implementation of a complete front-to-back conference management and registration system for a client organization that regularly hosted week-long conferences. Due to the specific business requirements of this client, they were unable to use existing conference management software, and instead required a fully custom solution. Additionally, each conference varied in the types of event content and registration requirements for each conference, which in turn required a solution that offered a great deal of flexibility.

Various migrations

Many of the projects I've been involved in have required migration into Drupal from a wide range of sources. These have spanned the range from simple migrations from MySQL, to being handed multiple gigbytes of XML files, to having to retrieve data from third party APIs, to third party platforms like Clickability.