Selected work
What I have built and run
Each entry says what the system does, what my part in it was, and what changed because of it. Every figure is counted from the system the work ran in.
8
systems on this page
3
still running in production
Oct 2025 to present
2.1M
ticket events handled since November 2025
AI Ticket Intelligence for a Service Desk
Built and run an always-on pipeline that reads a live professional services automation platform and turns raw ticket activity into a structured record per ticket, using Azure OpenAI.
- Contribution
- Sole designer and builder. The engineering problem was cost at volume, so the pipeline detects real change and branches out early, and the model runs only on tickets where something material moved. It reads the company's own ticket taxonomy live, so a new category is picked up on the next run instead of in a code change.
- Impact
- 2.1 million ticket events handled since November 2025, with sentiment and a summary landing on the tickets that changed rather than on a queue nobody can read.
Sep 2025 to present
126
recorded sessions over 269 days of production use
Internal AI Assistant in Microsoft Teams
A tool-calling AI assistant that staff use inside Microsoft Teams, routing to specialist sub-agents over twelve tool workflows across the ticketing platform, the knowledge base and endpoint management.
- Contribution
- Designed the agent architecture and shipped it into production. Reliability was the design goal, not the demo: a fallback model, retries, and an error path that answers the user instead of dropping the conversation. An instant acknowledgement runs in parallel with the long query, so a multi-tool answer never looks stuck.
- Impact
- 126 recorded sessions over 269 days of production use, putting ticket lookups, knowledge-base answers and device questions in one place.
Aug 2026
3 days
from the fork to live for the whole company
Per-Member Identity for an Open-Source MCP Server
An open-source Model Context Protocol server gave every user one shared credential, so an AI agent acted as the tool and not as the person using it. Forked it and made the server act as the signed-in member: one key pair per person in Azure Key Vault, an audit line on every tool call, and a server-enforced standard on what gets written back.
- Contribution
- The identity layer, the build and deployment pipeline, and a runbook written so a developer who has never seen the project can change it safely. The server itself and 51 of its 52 tools are the upstream maintainer's work.
- Impact
- Live for the whole company three days after the fork, with every agent action attributable to a named person.
Sep 2025 to present
109
workflows on one platform that five production systems depend on
Self-Hosted Automation Platform on Azure
Proposed, built and operate the Azure platform that every internal AI and integration system runs on: n8n in queue mode across five containers on one hardened Linux virtual machine, holding 109 workflows.
- Contribution
- Mine end to end, from the proposal through the build and the hardening to the patching it still gets. Production decisions were made up front rather than retrofitted: a dedicated worker behind a queue, bounded execution retention, a least-privilege database user, and an instance-wide error handler created the same day as the first workflow.
- Impact
- Five production systems depend on it, and it has been in daily production for a year.
Sep 2026
284
stranded refunds processed and paid
Recovery and Hardening of an Inherited Payment System
Picked up an undocumented production system that pays refunds out to patients, five days after first seeing it. Two batches had been stuck for about three weeks, refused by the bank with no reason given, and an earlier resend had fixed the wrong thing.
- Contribution
- Found the cause by comparing the refused files against accepted ones record by record, isolated four defective records, corrected and revalidated the files, and resent them with every write read back. Then made the system hold: a failed run now reports as failed, a monitor polls the bank and alerts the team, and the request form refuses the defective values at intake so the same class cannot come back.
- Impact
- 284 stranded refunds processed and paid, and the client confirmed the resolution in writing three days later.
Aug 2024 to Nov 2025
83,722
issues landed in one production cutover window
Enterprise Atlassian Cloud Migrations
Two migrations consolidating acquired companies into their parent organisation's Atlassian Cloud.
- Contribution
- On the first, engineered a manual path for 133,331 Jira issues after the vendor's supported tool proved unusable, with Python preprocessing, attachments staged and their links rewritten, 24 mapped batches, and every load operation written with a matching delete so the whole path could be undone. The same programme moved 25,790 Confluence objects across 132 spaces, followed by three weeks of remediation on links, ownership and permissions. On the second, led a cloud-to-cloud migration into a 2,000-seat enterprise tenant, with the runbook proved across four sandbox runs and then executed unchanged at cutover.
- Impact
- 83,722 issues landed in that one production cutover window, and two estates were consolidated onto one platform.
Feb 2026 to Aug 2026
6 + 1
internal applications and one client-facing platform in six months
Internal Application Platform on React and Azure
Six internal applications and one client-facing platform shipped in six months on a single shape: a React single-page app with an Azure Functions API, deployed together to Azure Static Web Apps by one pipeline design, with its own sign-in registration per application.
- Contribution
- Built the applications, then extracted the shape into a starter template with a README and a lint-gated pipeline, which a colleague went on to contribute to.
- Impact
- The next internal application costs a clone rather than a rebuild. These are delivery counts, and no user-adoption figure is claimed for them.
Aug 2024 to May 2026
411 of 437
issues on the delivery board written and assigned
Delivery Lead, Three-Surface Consumer Platform
Ran delivery of a consumer content platform across mobile, web and backend for 21 months through my own software studio, and took a share of the build directly.
- Contribution
- Wrote and assigned 411 of 437 issues on a six-lane Kanban board with weekly grooming, estimates in weeks and client acceptance testing as its own step before review. Wrote the build decisions into the tickets before the developers built them, turned the client's messages into typed, prioritised issues and relayed decisions back in the client's own language, and moved the repositories, hosting and credentials onto company-controlled identities after a shared client account was lost, with the git history preserved.
- Impact
- The app shipped to both the Apple App Store and Google Play, with the largest share of its mobile commits written here. The client's chairman named the work in a public testimonial afterwards.