CSS Developer in London, ON, Canada
Web Developer2014 - 2018Digital Echidna
Technologies: Drupal, Docker, Node, Slack
- Built full sites using Drupal.
- Trained and mentored new developers.
- Created a system to automatically provision and repair developer machines.
- Instituted CI across the organization.
- Automated many developer tasks.
Web Developer2013 - 2014The Marketing Department
Technologies: Drupal, Vagrant
- Updated, maintained, and built eCommerce sites using Drupal.
- Introduced version control.
- Built email campaigns.
- Trained teammates on Git and SMACSS.
- Automated development environments.
Web Developer2012 - 2013Inspiratica
- Built a custom CRM solution on top of the in-house Zend-based framework.
- Proposed new functionality for the in-house framework.
- Trained new hires.
- Built complicated, multi-step, interactive forms.
- Maintained WordPress sites.
Web developer2011 - 2012Thread Development
- Built and themed several Drupal sites.
- Developed an offline-capable mobile web app for a local event.
- Fixed several bugs in a popular shipping module for e-commerce Drupal sites.
- Built a Drupal-based point-of-sale system.
- Functioned as the company's one-man IT team.
Web Developer2007 - 2010Lake Erie Country Club (Volunteer)
Technologies: PHP, CSS, HTML, jQuery
- Redeveloped a static sit to a more manageable custom CMS.
- Self-directed introduction to PHP.
- Near-real-time Alert System (Other amazing things)
A Drupal-based college website I recently worked on required an alert banner to appear on the website in real-time, based on the college's emergency alert system, even if there was no active alert at the time the tab was opened. The hosting the college was using did not support any real-time events, and was already overtaxed serving the current site.
As enrollment opened, the site would experience hundreds of simultaneous visitors, many of whom would open several tabs as they browsed the course catalog and make comparisons.
To allow the website to frequently check for alerts, without crashing the server, I had to work out a system where all the open tabs on a users browser would elect 1 tab to do all the polling, and relay the updated alert message to the others.
Aside from the frequent AJAX polling, every time a new page was downloaded the system would check if it contained a message. If it was an older message from a cached version of the page, it would be updated to something current. If by chance the message was newer, the other tabs would update. If the site went more than a minute without polling, another tab would take responsibility.
This all worked reliably in modern browsers, with a graceful fallback.
- Retirement Community Intranet (Development)
As the main developer on this project, I was in charge of modifying a standard Drupal 7 installation until it met the needs of the client, and coding the theme for the site. This intranet served to keep track of documentation and training status for dozens of retirement homes and long-term-care centers across Canada.
The site's front end was built using SCSS and following the SMACCS naming conventions on top of Drupal's theme system. An interesting feature of this site was that each major section had a different highlight color assigned to it. I developed a Sass mix-in that allowed myself and other developers to style everything without having to worry about the color-changing logistics. I've been told by new developers working on the project that they found the theme very easy to jump into.
The site's back end featured a document management system that pushed Drupal's permissions API to its limits, allowing access based on roughly 7 dimensions, with wildcard support. Admins could grant access to categories like"All public documentation in retirement homes", "All documents in homes a user is a member of", or "Nursing documents in retirement homes in eastern Canada"
- Jetpack (Other amazing things)
This is a simple bit of CSS art playing with shadows, shapes, and gradients to simulate different shapes, lighting, and materials.
- Generic Platformer (Other amazing things)http://c572.ca/live/school/platformer/
- Ubiquitously Used Useful Utilities Unveiled (Other amazing things)https://vimeo.com/144831200
That mouthful is the title of an Ignite talk I gave at DrupalCamp 2015.
The talk focused on commonly used Drupal functions that are extremely useful, but easy to miss. Usually, they add too much noise to beginner tutorials but aren't worth mentioning in more advanced ones. You need to look at existing code and read the documentation to find them.
I gave this talk during my time at Digital Echidna, and yes, I'm wearing a company-branded jersey. You can always spot the Echidna's at a conference.
ToolsGitLab, GitLab CI/CD, Gimp, Blender, FullCalendar, GitHub, Trello, Git, Apache Solr, Photoshop CS6, Vagrant
PlatformsDrupal 7, MacOS, Docker, Linux, Drupal 8
FrameworksExpress.js, Bootstrap, Twig
Libraries/APIsTrello API, jQuery, Slack API
OtherTraining, Documentation, Hubot
ParadigmsBEM, Agile, SMACSS
- Ontario college graduate certificate in Interactive Media Specialist2011 - 2012Fanshawe College - London, Ontario
- Ontario college diploma in Multimedia Design and Production2009 - 2011Fanshawe College - London, Ontario
- Drupal 7 Grand MasterMAY 2015 - PRESENTAcquia