Enterprise Cloud Architect specializing in Drupal, Aegir, SaaS, PaaS, and IaaS. I do technical planning and implementation to ensure sound and sustainable solutions. I’ve worked with Drupal for over 12 years, and maintain over 40 contributed modules. I’m also a core maintainer of the Aegir Hosting System. Additionally, I’m a certified software engineer who’s been security cleared by the Canadian government. I volunteer my time to mentor students for Google Summer of Code (GSOC).
Skills & Proficiency
Software and systems engineering, Web services, SaaS, Infrastructure and DevOps consulting.
Development and maintenance of the open-source project for hosting Drupal and other types of sites.
I’ve built and/or maintain over 40 Drupal modules.
Digital identity & cryptography.
Independent contracting for various organizations in the public and private sectors.
I’ve worked on many projects throughout my career.
- Created information architectures that integrated with authenticity/identity components.
- Used cryptography and the Authenticity Infrastructure in the initial design of software systems to prevent security from being an afterthought.
- Worked towards implementing continuous integration and delivery (CI/CD) of software.
- Architected the cloud-computing infrastructure necessary for hosting cloud-based applications.
- Provided expertise in the enterprise technical architecture area.
- Produced S aaS and PaaS solutions.
- Implemented and documented DevOps processes.
- Took a best-practice approach to back-end software development.
- Supported Drupal sites via the Aegir Hosting System.
- Provided advice on Web technologies and the resource roles necessary for various Web projects.
- Planned the infrastructure for hosting Drupal sites.
- Produced estimates for the new business requirements and upgrading the existing site to Drupal 8.
- Added support for user groups, and being able to notify all members.
- Set up new Drupal 8 site, configured it and added functionality from Drupal 7.
- Wrote a custom notification system for updates to access-to-information requests.
- Created a scheduling subsystem for automatic e-mail reminders that get sent when tasks are due.
- Added tests for Drupal core development.
- Set up an Aegir Hosting System instance on a new VM for a new Development environment.
- Updated the standard Drupal 8 update process to include instructions for patch management.
- Documented installation and operations required for running Health Canada Aegir instances.
- Configured Aegir to run behind a reverse proxy to add HTTPS support.
- Developed migration plan, configuration and documentation for migrating the data to Drupal 8.
- Helped with supporting data migrations from Drupal 7's Field Collection to Drupal 8's Paragraphs.
- Migrated users, groups, records, references and comments from Drupal 7 to 8 with a new module.
- Worked with others to scale the Aegir implementation.
- Researched various configuration deployment approaches across development environments.
- Developed workable solution for packaging bundles of configuration as features.
- Modified the configuration merge workflow as necessary to match requirements.
- Finalized process for merging Web UI configuration with developers’ configuration in code.
- Determined the best cryptographic cipher suite to use for supporting common browsers.
- Proposed and oversaw plans for improving caching, load balancing, and adding a logging server.
- Instituted policy of tracking all application configuration in the code repository under version control.
- Rejigged file permissions and ownership for securing Staging and Production systems.
- Added a feature to simplify the Drush command handling merging.
- Devised process for connecting to the corporate VPN though Linux.
- Refined developer documentation for setting up and maintaining local sandbox sites.
- Reviewed existing configuration management processes and the Nginx Web server configuration.
- Standardized application configuration across all environments.
- Developed deployment processes and supervised code deployments.
- Managed continuous integration with Jenkins via development build scripts.
- Enhanced the release tagging strategy and process for emergency code fixes.
- Performed developer code reviews.
- Tuned applications for performance.
- Drafted options for importing remote data.
- Mapped remote data types to corresponding records defined in local data model.
- Determined optimal use of APIs providing access to current data stores.
- Set up several feed importers for ingesting content.
- Reviewed and stabilized the data model.
- Developed several routines to convert data for local stores as necessary.
- Added spam prevention to various public-facing forms.
- Devised plan for adding time-of-day filters to data views.
- Solved various timezone issues.
- Assessed possible site and code repository architectures, and dealing with related issues.
- Solved various issues with migrating and importing sites into the new environments.
- Discussed possible single sign-on (SSO) strategies.
- Coordinated with new hosting provider.
- Set up access to virtual machines (VMs) for developers & other maintainers.
- Created master Drush configuration for all sites.
- Prepared to launch sites into production.
- Investigated various caching issues with Redis, etc.
- Reconfigured the Solr search engine.
- Assessed existing information architecture (IA) / data model.
- Produced plans to improve the IA and development processes (DevOps).
- Planned development activities for several technical resources.
- Managed, organized, prioritized and estimated issues in the tracking system.
- Guided developers to help them accomplish their tasks.
- Provided feedback (as per best practices) on client assumptions for building Drupal sites.
- Established parameters for a successful content editor workflow and implemented a solution.
- Built the authoritative code repository, database and supporting applications (e.g. mail, Drush).
- Developed the site's functional specifications.
- Instantiated deployment scripts for moving code, databases and files between environments.
- Set up the Development, Staging and Production environments with a full application stack.
- Ensured that the HTTPS certificate was correctly integrated.
- Configured the Web server configuration Nginx + PHP's FastCGI Process Manager (FPM).
- Documented the virtual machines' set-up and all development & operational processes.
- Implemented multiple automated backup strategies for all assets.
- Added a multilingual / translation subsystem to support both English and French content.
- Upgraded Drupal core and contributed modules to protect against security vulnerabilities.
- Audited all modules (plug-ins) chosen by the developers.
- Researched various content delivery networks (CDNs) to determine applicability.
- Built a Java stack for the Apache Solr service via the GlassFish application server.
- Coordinated the implementation of a single-sign on (SSO) solution with another vendor.
- Debugged issues related to the corporate firewall.
- Tweaked system configurations to meet security standards.
- Modifying data-import processes to match business requirements.
- Worked with client to resolve domain name service (DNS) routing issues.
- Architected a social sharing solution to post site content to various Web sites.
- Delivered a system to tag and display list of content based on various filters.
- Performed code reviews.
- Developed system architecture and technical requirements documentation.
- Proposed various technical solutions to business requirements.
- Worked with the project manager to provide cost estimates.
- Researched third-party services necessary for the sites.
- Communicated with various service providers to host the site's multimedia assets.
- Investigated Drupal platform-as-a-service (PAAS) hosting companies.
- Discussed options for managing the sport's statistics.
- Wrote a business case for Drupal-platform hosting as opposed to generic hosting.
- Provided technical guidance to the development subcontractors.
- Architected the roll-out of Drupal (the WxT distribution) as the new enterprise Web platform.
- Developed the new Donor Web Portal for booking blood-donation appointments.
- Extended Drupal as an interface to load & save remote data through a REST API.
- Researched options for SSL/ TLS terminators, reverse-proxy caches, load balancers & Web servers.
- Ensured the QA & Production environments were available via HTTPS, with proper certificates.
- Wrote a business case for switching to Git version control, and set up an appropriate architecture.
- Instituted DevOps processes for coordination, deployment & upgrades with Git and GitLab.
- Created (auto-)deployment scripts for moving code, configuration & data between environments.
- Set up automatic Drupal user account creation on logins based upon the back-end CRM.
- Provided users the ability to securely register, manage their appointments & view history.
- Designed and implemented a Drupal module for OAuth2 user authentication & authorization.
- Integrating outsourced theming and other front-end work into the new framework.
- Performed code reviews and wrote an article how this is best done within Drupal projects.
- Produced a method for displaying remote data (not local to Drupal) using Views.
- Implemented a content editor workflow for authoring, approving and publishing content.
- Provided options for performance optimization and security-related issues.
- Allowed content editors to upload files to arbitrary locations within the Drupal file system.
- Reduced deadlocks with the MySQL database implementation through new configuration.
- Re-architected the US site to serve the UK site as well, with different subdomains.
- Allowed for seamless switching between country contexts.
- Set up editors with field-based content localization for both the US and the UK.
- Worked with third-party APIs (e.g. LiveChat, Mongoose Metrics) to enable multi-country support.
- Provided different landing page tempates depending on the locale.
- Swapped in country-specific menus & other compoents based on the active country.
- Wrote DevOps process documentation to deploy code & configuration.
- Upgraded the site from Drupal 6 to 7.
- Instituted group-based access control for different organizations within the university.
- Developed a process to create new organizational data use agreements (DUAs) from templates.
- Created a framework allowing for different document workflows within each organization.
- Set up modern revision control with a development workflow and a new hosting provider.
- Added Canadian currency (CAD) support to the e-commerce application.
- Rewrote e-commerce code make it work for multiple countries.
- Performed research on adding an automated Google Shopping feed.
- Added support for Canadian shipping addresses.
- Tested shopping-cart checkouts for Canadian customers.
- Constructed a system to provide country-specfic features (e.g. menus) per country site.