Retheme of established community website.  Create new feeds and integrate into Redis cache system.

Built site from scratch using Drupal 9. Landing pages built using Layout Builder.

Built the site from scratch using Drupal 9, Lando, SASS, Webpack, Tailwind CSS.  Used a dynamic content creation system consisting of paragraph types to  generate the different display components.  Charity, Container Points, and Products all obtained via third party APIs.

The main purpose of the IPO site is to enable input of patent applications from academics from within and without Rensselaer Polytechnic Institute.  Those patents are then applied for and published.  A form was built for patent input and Solr driven search created for display.  The site also contains a lot of graphical elements.

Worked as a part of a team to upgrade business site to Drupal 8 from Drupal 7.  My role involved creating a Solr powered search with multiple facets driven by Ajax and being context aware. This required a lot of custom coding and testing.

Worked as part of a team of three backend and three frontend developers to build three sites from scratch within the Pfizer Connect family.  The sites were Connect, which enables communication between health professionals and Pfizer, Support which provides support between the same, and Orders, which enables health professionals to obtain samples of product for testing.  The sites were developed in an agile environment with a team of UX and UI developers.  The code was deployed using a sophisticated CI/CD system via github using Travis to build and test the code.

Built a simple brochure website from scratch using theme plugin.

A site in the Chorus family of companies whose purpose is to provide information to the public about the company finances, directorship and other aspects related to corporate management.  This site is chiefly information only and does not provide any dynamic elements.  The video banners involved contributing back a Video JS module

An Enterprise level website for a major NZ Company with about 4000 unique visitors per day.  This website was developed as a team with technical lead from Passing Phase Web Development.  The site consists of a number of information pages, some online tools and various forms enabling the public to respond to matters involving the services available through the company.  The tools are made using third party code while the forms use Drupal contact form and webform module.

Created site from scratch.  This is a site used by wholesale customers of the client for developing retail packages for the NZ broadband market.  Key elements are 

  1. Integration with Campaign Monitor, which required upgrading Drupal 7 module to Drupal 8 to provide a subscriptions method on registration.
  2. File downloads, which involved contributing back a File Download module.
  3. Search functions using Apache Solr.
  4. Fully responsive theme with full width banners.

A site for a small business that includes a room booking function and full width banners

Community College Association Website.  Built in conjunction with Esuitetools.  The site interfaces with a third party member management system, providing the web frontend at which customers and visitors can interact.  

Features of this site include the following:

  • An install profile to create a standard association website from which customizations can be made dependent on the client.
  • A full width image slider on the home page that is responsive and loads smaller images for smaller devices.
  • An Apache Solr search.
  • A microsite system that enables a number of sub pages for an event.  This uses only one node, creating url paths to display sub pages which are provided by the field collection module. 


American Trial Lawyers Association Website.  Built in conjunction with Esuitetools.  The site interfaces with a third party member management system, providing the web frontend at which customers and visitors can interact.  Features of this site include:


Developed in conjunction with Communica.  This site is made of pages which consist of a combination of:

  • Layer Sliders
  • Galleries
  • Background Images
  • Background video

The site is a fully responsive graphical site with images stretching full width on all devices.  The pages were created enabling the client to add any of the above components to the site by themselves via the backend.

Different installs have been created for the site for different countries, each with their respective language and other idiosyncracies.

Rebuild Drupal 6 website with new responsive theme operating on mobile, tablet and desktop varieties, using a design supplied by Rareview that uses Modernisr for image resizing.

The Assessment Resource Banks consist of resources (mostly quizzes) for primary age school children, that are used formally by teachers in the NZ Education system, to assess their students.  For the first time these resources are being made available online in fully interactive form so that students can do the quizzes on their iPads and teachers can assesses them online.  Student results can then be easily accessed, displayed and printed out and results can be compared from year to year as the student progresses.

Features of the website include a fully responsive theme, a number of search options, available from the home page and use of isotope masonry tiles for display of information.  A module created for this site was contributed back to drupal.  This module, called tagit using a third party jquery plugin, creates 'chosen' style functionality for text fields.

This was a multi-developer project.  Passing Phase Web Development managed the core Drupal 7 development including a responsive theme, multi-layered menu system, content types, views as well as integrating with a remote service information system called StructWSF.  This system enables data from a central repository to be made available to multiple websites.

This was a multi-developer project.  Passing Phase Web Development undertook the paid user registration system.  This is a complex system involving different types of user accounts, corporate and individual and different types of payment arrangements such as corporates paying for all their members or members paying their own way.  Membership amounts are calculated in different currencies depending on user origin.  Members are notified of impending membership expiry at different intervals.

This client wishes to organize ongoing conferences, in Spring and Autumn of each year.  Each conference has its own url prefix, such as 'spring2013' and 'fall2013'.  This was achieved by using Drupal 7's hook_inbound_alter and hook_outbound_alter meaning that these urls did not need to be set in code.  Each conference is controlled from a single content type making it easy to set up a conference.  When browsing a conference, session variables hold information about the current conference so that all information displayed relates only to that conference.  The result is a dynamic and lightweight means of managing multiple ongoing conferences.

This is a site with very specific instructions regarding layout and visibility of components.  People are able to join up to the association and pay.  Site admin assess potential members and accept their application or decline.  Approved applicants have access to the member area which includes forums, events and other items.  The site keeps a record of who has paid and what year they have paid for.

Made some vital improvements to the product inventory system enabling the client to enter products swiftly and easily.

Develop site from scratch using supplied design.  Roton is an e-commerce site with several hundred products and a shipping and goods and services tax system that varies with the destination province in Canada. 

A simple Wordpress site involving two lots of slideshows and using the cascadia theme from Theme Forest.

Complete retheme of site and implementation of multiple blocks of lists and teasers for home page and article/news pages.  Features include javascript megamenu, javascript rotators, taxonomy related lists, editor controlled featured text and links, a custom pager and slideshows.

An online registration system for users to enter their personal and family details into a database.  Uses a multi-step form. 

Transfer site from html files into Drupal.  This required scraping the html files section by section, extracting out necessary field data, stripping unwanted tags and inserting into nodes.  Also processed a complex taxonomy system driven by urls and other data and created theme template from supplied theme.

Implement paid subscriptions using core Ubercart modules.

A site for booking Workshops online.  Used uc_event module and created workshop management system for site admin as well as user event bookings.  Revamped theme according to instructions.

Complex online quoting system involving products and associated line items and discounts.

Use Drupal form system to create a quoting system for sales services.  Includes custom interface with dompdf for PDF generation.

The entire system is only available to registered users and is controlled by a permissions system to keep quotes confidential.

A job board system with search for multi-level categories within countries and provinces.

This modules uses the job module, cck_address and adv_taxonomy_menu to create an integrated job board system with descriptive breadcrumb and blocks which sorts jobs by country and province/state and by taxonomy.
Users can search within taxonomy within countries or within sub taxonomies within countries.

A Ubercart shipping module that uses the Chinese iShip method.

IShip is the method used by  This is a standard Ubercart shipment gateway that uses this method.

A Ship Later module for Ubercart which enables users to buy products in bulk and then ship them individually to clients at a later date.

This is a specialized use.  The client sells products which users can buy for bulk and the onsell individually to other customers.  The module includes Views handlers and views to display pending, committed and sent items.

A Social Networking and Destinations Site for the US and elsewhere.  The site is divided into the main domain which is edited by the site admin and the community domain which is the social networking part.

Users can enter destinations and make them available for others to search.  Destinations use location map functionality and a category system for managed display of content.

Users set up their own profile and can control display of various profile items to share with no-one, with friends or with everyone.  The profile page displays the user's photo albums, blog entries, friends and groups and there is quick access to private messages, friend accept/deny, invites and privacy settings.

Users can create groups and add topics, events, blog items and picture albums. From the community page, users can easily browse groups, topics, pictures and members in order to find suitable destinations for planning outdoor activities.

An online Wiki for dermatologists to upload and share medical cases worldwide. In order to use the functionality for this site for other similar sites in different disciplines a modular system has been created that can be applied to different sites that provides the basic functions required, which include:

  1. Recording medical cases and attaching images, and linking to other content
  2. Creating events, conferences and research projects
  3. Posting jobs
  4. Accepting donations