Software Engineer
- One of the core engineers rebuilding Mantle's order-processing service โ the system that confirms an order, calculates pricing and discounts, credits refunds, and expands a bulk "collection" purchase (e.g. a bundle of hundreds of titles) into the individual books a customer actually receives. Built several of its major features myself, including the order-confirmation flow, the collection-to-product expansion, and a performance fix so it could handle purchases of up to 40,000 titles at once.
- Built the systems that send confirmed orders to Cambridge's SAP finance system and to Access to Research, plus a secure lookup so customer-service staff can pull a library's SAP account and billing history without leaving Mantle. Also built the piece that reports order status and fulfilment back to EBSCO's MOSAIC ordering platform, so libraries using MOSAIC get automatic updates on their orders.
- Built the access-control piece of Mantle that grants and revokes a library's right to read a purchased digital book or journal, added the internal product-search tool staff use to find titles, and built a secure bridge to the university's central identity system so a customer's account details stay in sync everywhere.
- Built a brand-new service from scratch to keep Cambridge's internal record of what each customer owes and has paid lined up with SAP's records, with built-in safeguards so it can't accidentally overload SAP with requests.
- Designed and built several of the small, independent cloud functions that power individual steps of the order pipeline โ confirming orders, granting entitlements, and (most recently) a scheduled job that keeps our internal ledger in sync with SAP's financial records every few hours โ each with automatic retries and instant Slack alerts if something fails silently.
- Set up and hardened the AWS infrastructure behind these services: provisioned the message queues, failure-handling ("dead letter") queues, and storage each one needs; migrated a service's login credentials out of plaintext and into AWS Secrets Manager; and moved our deployment pipelines off long-lived AWS access keys onto short-lived, per-deploy credentials (OIDC) to close a standing security gap.
- Maintain a shared code library used across every one of these rebuilt services, so a fix to something like error-handling or logging only has to be made once.
- Replaced the team's old, fragile local-development setup with a one-command Docker environment that spins up all ~30 services and their infrastructure (databases, queues, etc.) with a single script instead of a long manual checkout process.
- Designed and built the governance framework that controls how Claude Code (Anthropic's AI coding assistant) is allowed to work across every service in this rebuild. It started as a single ~5,200-line foundational commit and grew, through more than 130 commits across a dozen feature branches, into a full spec-driven development system: any new feature has to pass through four stages โ a written proposal, an implementation plan, the actual code, and a final verification โ each gated by a required human sign-off. Backed that process with automated enforcement scripts that technically block a commit (e.g. rejecting code with no test written first), rather than just asking the AI nicely to follow the rules. Built five specialised AI agents that each own one stage of that pipeline โ drafting specs, planning tasks, triaging ambiguous requests, and verifying finished work โ and tuned which tier of AI model handles which kind of work, so cheaper/faster models handle routine implementation while a more capable model is reserved for specs, planning, and review. Later built a separate, lighter three-gate version of the same pipeline specifically for the QA team's automated-test authoring, so test coverage gets the same rigor without the overhead a QA workflow doesn't need. Also audited and restructured what the AI loads automatically versus on-demand, cutting the reference material it has to read before starting any task by roughly 47% โ reducing cost and speeding up every single task without weakening any of the enforcement.
- As part of that effort, personally authored the onboarding documentation โ what each service does, how it talks to the others, how to operate it โ for essentially every one of the roughly 40 services in the rebuild, legacy and new alike, which both the AI tooling and new engineers rely on. Recognised as the team's go-to person for this tooling, with ongoing responsibility for its improvement.