Experienced web developer, technical lead, educator, and researcher. Skilled in developing web applications including WordPress and backend services. Experience running a development team in an enterprise higher education environment. Currently focusing on AI integrations for web and mobile applications.
Skills
Experience Level
Language
Work Experience
Education
Qualifications
Industry Experience
Migrating a large Drupal-based academic social network to the Knowledge Commons WordPress platform.
 is a venerable academic social network that needed a new, more sustainable home. Working in collaboration with their developer, I migrated thousands of posts, pages, and sites, and approximately 20,000 user accounts to Knowledge Commons. The involved programmatically creating user accounts, sites, and posts, linking everything together, and creating a mechanism for users to retain control of their content on a new platform.
Building Mailchimp integration for the Knowledge Commons network.
, AWS Elastic Container Registry (ECR), AWS Secrets Manager, GitHub Actions
GitHub: [MESH-Research/knowledge-commons-wordpress](https://www.twine.net/signin
Before this project, [Knowledge Commons](https://www.twine.net/signin ran on a traditional LEMP stack, with development taking place through live filesystem edits and pulling changes from GitHub. Local development was infeasible. This (very large) project involved centralizing the Knowledge Commons WordPress application in a single repository, containerizing the application, using Lando for local development, moving most configuration to environment variables configured through AWS Secrets Manager, creating a CI/CD pipeline with GitHub Actions, and deploying to AWS ECS with a blue/green deployment strategy that allows for zero downtime deployments and end-to-end testing of deployments before exposing them to regular users.
Building a backend search service for the Knowledge Commons network.

Technologies: PHP, WordPress API, JavaScript, SCSS, React
GitHub: [Epistemic-Technology/wp-museum](https://www.twine.net/signin
Museum for WordPress is a full-featured museum management system built for the [University of Toronto Scientific Instruments Collection](https://www.twine.net/signin It is designed to make it easy for organizations and individuals to manage and share their collections of physical artifacts while tightly integrating with a WordPress website.
Building an Obsidian plugin to sync GitHub issues and pull requests to an Obsidian note.
![Screenshot of the GitHub Tasks Obsidian Plugin showing an Obsidian note with a list of tasks](https://www.twine.net/signin
Dates: June 2025
Technologies: TypeScript, GitHub API, Obsidian API
GitHub: [Epistemic-Technology/obsidian-github-tasks](https://www.twine.net/signin
GitHub Tasks is a simple, but powerful and flexible tool for synchronizing GitHub issues and pull requests with Obsidian tasks. I made it mainly so that I could use it myself to see all of my outstanding tasks in a single place.
Building a multi-provider chat application for [Obsidian](https://www.twine.net/signin
![Screenshot of the Co-Intelligence AI Obsidian Plugin, showing a text-based interface similar to ChatGPT](https://www.twine.net/signin
Dates: April - May 2025
Technologies: TypeScript, Vercel AI SDK, Obsidian API
GitHub: [Epistemic-Technology/co-intelligence](https://www.twine.net/signin
Co-Intelligence provides a full chat interface within Obsidian, allowing users to interact with a variety of LLMs, provide context from notes in their vault, and automatically save conversations as markdown-formatted notes.
Building a RAG-based chatbot for the Epistemic Technology website.
![Screenshot of the Epistemic Technology chatbot showing a brief interaction and the WarGames aesthetic](https://www.twine.net/signin
Dates: March 2025
Technologies: Go, OpenAI Go SDK, SQLite, SolidJS, TailwindCSS
GitHub: [Epistemic-Technology/epistemic.technology](https://www.twine.net/signin
The Epistemic Technology chatbot is a RAG-based chatbot built using the OpenAI Go SDK for generating embeddings and responses, and SQLite as a vector database. It uses SolidJS for the frontend. The app is rendered on top of the static website, and TailwindCSS is used to isolate the chatbot’s styles from the rest of the website. The chatbot’s aesthetic is meant to evoke the classic 80s movie WarGames.
I discuss this project in my blog post Building a Chatbot
Hire a Web Developer
We have the best web developer experts on Twine. Hire a web developer in Kingston today.