Career Profile
I’m an Enterprise Cloud Architect specializing in infrastructure as code (IaC), SaaS, PaaS & IaaS consulting, DevOps and Drupal. I do technical architecture and implementation to ensure secure, sound and sustainable software stacks as a service (SaaS). While I come from a Drupal background (having worked with it for over 15 years), I’ve shifted my focus to infrastructure and configuration automation, to fully automate cloud infrastructure and configuration. While I’m a certified software engineer, I’ve also been security cleared by the Canadian government.
As part of my SaaS work, I focus on application lifecycle management (ALM), DevOps, Cloud Architecture and Continuous Integration/Delivery (CI/CD). Handling the lower parts of the stack as well, I also work on platform-as-a-service solutions (PaaS) to enable SaaS with ALM, and consult on virtual infrastructures as a service (IaaS) in various cloud environments. Important aspects of my work are automation and security.
HIGHLIGHTS
- Founder of BackUpScale, the automated, encrypted and secure off-site backup service
- Received the Government of Canada’s IM-IT Community Recognition Award for launching the Buy & Sell procurement portal (https://buyandsell.gc.ca/)
- Co-maintainer of the Aegir Hosting System, an application life-cycle manager (ALM) for Drupal sites
- Mentor for various cryptography-focused Google Summer of Code (GSOC) projects
- Over 15 years of Drupal expertise, maintaining over 40 contributed modules
- Insists on security using information and event management (SIEM) and virtual private networks (VPNs)
Skills & Proficiency
Infrastructure Automation
Cloud Architecture
DevOps
CI/CD
Experience
Cloud architecture, software & 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 (co-)maintain over 40 Drupal modules.
Digital identity & cryptography.
Independent contracting for various organizations in the public and private sectors.
Projects
- The Authenticity Institute - Digital identity
- Health Canada - Proprietary and Scientific Information Assessment (PSIA) Info Mgmt
- National Democratic Institute for International Affairs (NDI) - Continuous integration/deployment for DemTools
- Holland America Line - Booking Data Flow
- YMCA San Francisco - Remote Data Management
- City of San Francisco - Sites Migration
- Nestlé - Canadian Products
- Canadian Football League - Corporate and team sites
- Canadian Blood Services - The new Blood.ca / Donor Web Portal
- Reputation.com - US-UK Web Site Merge
- Harvard University - Acquired Data Accountability and Management System (ADAMS)
- Hunter Boots - Hunter Boots Canada
- MBE Holdings Inc. - Gripevine
- Pink Triangle Press - Daily Xtra
- Intercultural Systems / Systèmes interculturels - MyWorldAbroad.com
Projects
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.
- Explored Kubernetes as a container-orchestration system for automated application deployment.
- Planned integration between Kubernetes and Aegir.
- Architected mapping of Aegir abstractions onto Kubernetes.
- Deployed applications with Kubernetes resources.
- Researched the backup and restoration of Kubernetes deployments.
- Reviewed others’ resource management code.
- Determined methods for deploying storage data for backup.
- Set up a development environment with Minikube, Docker and Vagrant.
- Implemented process for sending front-end configuration data to the back-end.
- Created new content types within Aegir for Kubernetes services.
- Implemented a backup implementation.
- Reviewed existing deployment processes.
- 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 on AWS.
- 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.
- Performed a full technical architecture audit of the latest Drupal implementation.
- Suggested a new and improved data model for clarity, simplicity and standardization.
- Made recommendations and provided time estimates for optimizations and improvements.
- Provided on-going consulting services for Drupal-related issues.
- Created report on existing operational processes for code deployment.
- Produced plan for optimizing development operations (DevOps) processes.
- Oversaw the implementation of the new operations.
- Modified deployment scripts for Staging and Production environments.
- Ensured that content and configuration are handled differently.
- Helped the system administrator (sysadmin) with Drupal deployment issues.
- Wrote documentation for the developer, build manager and sysadmin roles.
- Developed custom code to invalidate the Varnish cache on content updates.
- Discussed various additional cache mechanisms such as cache warming/priming.
- Brainstormed and planned strategies for improving site performance.
- Performed an accessibility audit of the site as per Section 508 requirements, WCAG specifications and related resources.
- Made use of several performance analysis tools in order to establish benchmarks for the loading of various pages.
- Improved performance of the site using a wide variety of caching mechanisms, such as cache warming/priming.
- Constructed and implemented the data model for the Quizzes section of the site.
- Configured the search functionality to work with the Apache Solr enterprise search engine.
- Added some search features such as spelling correction.
- Set up a more robust logging system for events.