Highlights From My Work

Here are a few of the projects I’ve really enjoyed working on over the years. There’s more, of course, so if you want to hear about my work on mobile apps, AI integration, or website rescues, just let me know. I kinda love talking about this stuff.

Georgian Bay Spirit Company Shopify Site

Screenshot composite showing four branded landing pages from a multi-brand Shopify site. Each page uses a distinct logo, color scheme, and product imagery for Georgian Bay Spirit Co, Wyatt Rose, Isla Tequila, and BFF Beverages, demonstrating visual differentiation within a shared layout.

I created a Shopify theme for Georgian Bay Spirit Co and have continued to support the site with updates over time. One interesting wrinkle: the site features four distinct brands, each with its own landing page and visual identity, all while maintaining a consistent shopping experience across the site.

The site brings together Georgian Bay, Wyatt Rose, Isla Tequila, and BFF Beverages under a single Shopify theme. Each brand has its own landing page and visual styling, applied appropriately based on the domain, product, or collection page. The structure allows for consistent code, easy content updates, and room to scale as new brands are added.

Key features:

  • Multiple brands, one store: Georgian Bay, Wyatt Rose, Isla Tequila, and BFF Beverages all run on a single Shopify theme.
  • Brand-specific landing pages: Each brand’s homepage was rebuilt from its original site, integrated into the theme, and adjusted for visual consistency.
  • Automatic brand detection: The correct styling is applied based on domain or landing page.
  • Editable branding: Logos, colors, and messaging are managed directly in the Shopify admin.
  • Scalable structure: The system is built to support new brands without duplicating code or creating new stores.

Augmenting the CCES eLearning Platform

Logo for Canadian Centre for Ethics in Sport, over a blurred data table.

The Canadian Centre for Ethics in Sport needed features that their LMS didn’t support. I built a suite of tools that could be dropped into any course with a simple script.

I added support for metrics and analytics, in-course profile management, and downloadable PDF reports. All of these features can be enabled with a lightweight drop-in script. The tools are managed entirely through an external dashboard and have remained in use for years without requiring updates.

Key Features:

  • Script-Based Integration: The LMS supports custom JavaScript. All augmentations are delivered through a single script that provides variables for easy configuration.
  • PDF Report Generator: Staff can create custom report templates using HTML and insert placeholders for course-specific fields. Students can then download personalized reports at the end of the course. Both the templates and field mappings are managed through the dashboard with no developer support required.
  • Metrics and Analytics: As learners progress through a course, variables such as survey answers and time-on-page are automatically captured and sent to the analytics server. Metrics are managed entirely from the dashboard, with no changes required to the course files beyond including the primary script.
  • In-Course Profile Management: Courses can embed a login interface, allowing users to view or update their LMS profile without leaving the course.

Mini-Project! CMA Vaccine Awareness HTML5 Ads

CMA Vaccine Awareness Campaign title and Canadian Medical Association logo alongside a professional spokesperson in business attire.

The Canadian Medical Association ran a campaign to promote their COVID vaccination website. The design was ready, but the ads needed to be converted to HTML5. I was handed about a dozen reference designs and produced over a hundred completed ads in multiple variants, languages, and resolutions.

The campaign includes more than a dozen variants, each translated into English and French. While we set reasonable defaults for layout and font sizes, most variants required manual tweaking. We adjusted text, spacing, and transitions to maintain clarity across all resolutions.

Key Features:

  • Broad range of formats: Ads ranged from tiny 300×50 banners to 1920×1080 full-screen placements. Fitting copy into these sizes required careful review, occasional text tweaks, and sometimes adding extra animation frames.
  • Tight size limits: Google limits HTML5 ads to 150KB, even at high resolutions with animations.
  • Review Dashboard: I provided a dashboard where stakeholders could quickly review and download all variants from a single page.

See it in action!
(Note that these examples are in their original resolutions, so may be clipped on some devices)

Legal Repository Platform Migration

Illustration of a chaotic mass of file types being funneled into a streamlined WordPress archive, representing a large-scale document migration and cleanup.

A legal advocacy group needed to move their 70,000-document archive off a legacy platform that had been running since 2008 and was nearing end of life. I migrated the content into WordPress, fixing formatting issues, rewriting internal links, and resolving structural inconsistencies in the data. Granular access controls were applied to limit visibility by organization, and the backend was optimized to support high-volume use without performance issues.

The source data came as a raw export: tens of thousands of pages, files, and their associated tags. The goal was to migrate everything into a new system without breaking links, losing structure, or changing how users worked day to day. The replacement included reworked access rules for multiple user groups and a rebuilt search engine capable of indexing both document content and tags.

Key Features:

  • Bringing everything over: Plain HTML documents were imported first, alongside minimal file metadata, followed by an overnight job to download and validate the complete file contents. Multiple test migrations were run to catch and resolve edge cases before launch.
  • Fully searchable content: Full-text indexing was powered by Apache Tika, which extracted searchable text from a wide range of file types including PDFs, spreadsheets, and plain text.
  • Granular access control: Document access was managed through a combination of user roles and per-document settings, using a custom permission layer built on top of WordPress roles.
  • Backend performance tuning: The WordPress admin dashboard struggled with the high volume of documents. Fortunately, the performance issues were isolated to a few features, each of which could be addressed with custom hooks once identified.
  • Content cleanup: HTML documents were updated so internal links and images pointed to their new home. Obsolete or potentially dangerous file formats (like .exe) were flagged and ultimately removed. Redirects were added to ensure existing URLs still worked in the new system.

Personal Project: The Friendly Bet

Logo: TheFriendlyBet.com

Okay, so, I’ve been drinking with the same group of friends for over 20 years now, and every single time someone makes a wild prediction about the future that makes no sense. Myself included. And they never get called out on it because by the time the date rolls around, everyone’s forgotten about it. No more. Now we can catalog our predictions and suffer the consequences of being right or wrong. All thanks to: thefriendlybet.com.

The site is designed for minimum complexity, both in style and the backend.

Key Features:

  • No cookies: Every action is performed with unique URLs and single-use tokens.
  • Robust: The site’s been running for years with minimal maintenance.
  • Simple backend: Written in PHP with no frameworks, just a single SMTP library.

See it in action

Ready To Get Started?