Welcome to My Portfolio

I've worked on quite a few projects over the past 15 years. Some were great, some nothing fancy. Below are the highlights of some of the work I've enjoyed the most, am most proud of, and/or best demonstrates my skills and talents.

Work Projects

These are projects I've built or worked on with others for my employer.

Sahtu Land Use Planning Board Redesign May - July 2022

Lighthouse 2007-Present

NWT Land and Water Boards 2010-Present

Yukon Government eServices Tools 2017-Present

NWT Teacher's Association 2017-Present

Mackenzie Valley Review Board 2005-Present

Drupal 9 Installer Script 2020-2021

What is this?

A script that uses a combination of composer and drush to create a new Drupal 9 installation using the Acquia Lightning modules. NOTE: No link is provided as this is a private project.

Details

This is a script written in php that will get you started with a fresh Drupal 9 site incuding the Acquia Lightning features, complete with a Bootsrtap Barrio based starter theme and bunch of preconfigured stuff ready to go. It may not be everyone's preferred initial setup, but it could be forked and modified to suit. It uses a configuration file to tailor the installation and save some steps during the process.

Note: we have discontinued use and maintenance of this script now in favour of simply cloning a pre-installed and configured base site, which is easier to maintain.

Technologies Used

Personal Projects

These are projects I've worked on in my spare time.


Drupal Updater Script 2023 - Present

This is a command-line script written in PHP using Symfony Console for automating Drupal updates using composer on multiple sites. It offers the following features:

  • Option to automatically commit and push to a git repository
  • Automatic download of production database (if a drush alias is present)
  • Backup of database prior to updates
  • Function to rollback a site so you can test the update deployment manually prior to production deployment
  • Detailed summary of updates used in git commit
  • Option to send email notifications with the detailed summary
  • Options for handling scaffold files that may have been overriden in the project (if you are not already taking care of that another way)
  • Nicely formatted logging and a log display command to quickly review any messages generated by the last run command
  • Proper handling of multisite configurations

In uses YML file for configuration and to provide the list of sites to be updated, which it will look for in a few different locations on the machine executing the script. It can speed up the process of running regular updates when managing a large number of sites. If you use a CI workflow, then the next step of testing and deployment to UAT for review can be triggered automatically as well when the script pushes the updates to your remote repository.

If you manage and host a large number of sites with a contract to handle security updates, this script is for you!

Technologies Used

eThings IT Asset Manager 2017-Present

Biscuit PHP Framework 2007-2013

What is this?

It's a whole custom MVC framework built in PHP. The link above goes to the core framework, but you can browse the other Github repos to find the various modules and extensions I also developed for it.

Why?

  1. I was young and not very knowledgeable of what was out there (I didn't know about things like CakePHP or Laravel)
  2. I wanted something to make development life easy so I could build out sites more quickly
  3. I needed an excuse to learn more advanced PHP OOP development

Details

In my earlier years of web development, before I knew much about what was out there and before I'd started working with Drupal, I was building custom sites from scratch. You know, as you did back in the day. So I started working on a framework to help make it easier and quicker and over the years built this entire thing. Obviously there are much smarter people out there working on much better, more advanced frameworks and have been all along, but this gave me a huge boost in my knowledge and expertise in PHP OOP development.

Sadly I've lost most of the commit history because I couldn't be bothered with the hassle of converting it properly from SVN when I moved everything over to Github.

Technologies Used