◫
Selected engineering work
Problems worth solving
Projects across Goldman Sachs, Citi, Fidelity, Mercer and Aristocrat, with my contribution and the engineering decisions behind each.
01

Goldman Sachs
Event-driven integration platform
I redesigned how enterprise applications received updates from three AWS-hosted Jira instances. Webhooks published changes to Kafka through AWS MSK, letting consumers subscribe to events instead of repeatedly querying application APIs. The redesign halved the application EC2 node count and enabled database downsizing.
20 → 10application EC2 nodes
50%fewer application nodes
SmallerAurora instances
The problem
- Repeated REST polling created avoidable load across application and database tiers.
- More API queries were being used to discover changes that could instead be delivered as events.
What I built
- Analysed the traffic pattern and introduced a dedicated AWS MSK cluster.
- Connected Jira webhooks to a Kafka event path for downstream subscribers.
How it worked
- Changes generated events that consumers received through relevant Kafka topics.
- The messaging layer reduced repeated reads against the source applications.
02

Goldman Sachs
Enterprise MCP platform
I built Python services that exposed Jira and Confluence capabilities to enterprise AI agents through the Model Context Protocol (MCP). The services gave agent workflows reusable tools for interacting with existing applications—a practical foundation for connecting AI to everyday enterprise work.
The problem
- Agents and bots needed a reusable way to interact with enterprise applications.
- Application capabilities had to be made available in a form agent workflows could use.
What I built
- Created several MCP servers, including an Atlassian integration for Jira and Confluence.
- Packaged application capabilities as reusable tools for AI workflows.
How it worked
- Python MCP services exposed tools between agents and the enterprise applications.
- Established shared access patterns that could support multiple agent workflows.
03

Goldman Sachs
AI-assisted engineering workflow
I introduced Devin-assisted maintenance workflows across more than 20 GitLab repositories. The rollout allowed AI assistance in day-to-day repository work while keeping engineers responsible for merge approval and reviewing Terraform plans before infrastructure changes.
20+GitLab repositories onboarded
The problem
- Routine repository maintenance consumed engineering time.
- Introducing agent assistance also required clear ownership of code and infrastructure decisions.
What I built
- Onboarded repositories to Devin-assisted workflows.
- Retained human merge-request approval and explicit Terraform plan checks.
How it worked
- Agent-assisted work entered the existing GitLab review process.
- Engineers reviewed proposed changes before approving merges or infrastructure actions.
04

Goldman Sachs
Regulatory retention platform
I developed a near-real-time feed that connected an enterprise Confluence platform to a central regulatory retention system. It captured content creation, updates and deletions, then transformed those events into the format required by the retention system.
~80Kusers on the source platform
~200Kcontent items on the source platform
The problem
- A regulatory requirement called for content lifecycle changes to reach a central retention system.
- The integration needed to account for creation, modification and deletion events.
What I built
- Developed an in-house feed for near-real-time lifecycle event capture.
- Added transformation into the retention system’s required format.
How it worked
- The feed captured changes as content moved through its lifecycle.
- Format conversion connected the content platform to the central compliance workflow.
05

Fidelity International
Self-service DevTools upgrades
I created a Python/Django dashboard that brought DevTools upgrade procedures and platform-readiness checks into one self-service workflow. It helped teams follow a repeatable upgrade process through a shared interface, making operational preparation more consistent.
The problem
- Upgrade procedures and readiness checks needed a consistent workflow.
- Fragmented steps made the process harder to repeat across upgrade activities.
What I built
- Developed a Django dashboard for DevTools upgrades.
- Brought procedures and readiness checks into a shared self-service interface.
How it worked
- Teams used the dashboard to follow the upgrade workflow and readiness checks.
- The shared process standardised preparation for platform upgrades.
06

Mercer
Email-to-Jira intake and routing
I built a Java application that converted incoming email requests into Jira tickets and routed them using keyword-based classification. It automated the path from an unstructured email to a tracked work item, reducing the need for manual ticket entry and assignment.
The problem
- Incoming email requests needed to be entered into Jira and directed to the appropriate destination.
- Manual ticket creation and routing added repetitive operational work.
What I built
- Developed the Java email-to-ticket application.
- Integrated keyword-based classification and routing with Jira ticket creation.
How it worked
- Incoming email → keyword classification → Jira ticket → routing.
- The workflow automated request intake while making the resulting work trackable in Jira.
07

Aristocrat Technologies
Recruitment and work-management integration
I connected Oracle Taleo with Atlassian tools using Java middleware and Python scripts. The integration automated workflow hand-offs between recruitment and work-management systems, helping work move across application boundaries without relying entirely on manual coordination.
The problem
- Recruitment and work-management activities lived in separate platforms.
- The systems needed an integration to automate workflow hand-offs.
What I built
- Developed Java middleware and Python scripting for the integration.
- Connected Oracle Taleo and the Atlassian toolset at their workflow boundaries.
How it worked
- The integration layer linked work across the two application environments.
- Automated hand-offs supported a more connected operational process.
08

Citi Bank (via Infosys) · 2021
Monitoring and operational automation
I developed a rule-based monitoring and automation application for banking operations. Built with Java and Spring Boot, it integrated ELK and AppDynamics endpoints and used Quartz to schedule recurring checks, with Thymeleaf providing the web interface.
The problem
- Operational checks spanned multiple monitoring endpoints.
- Recurring checks and follow-up tasks needed a repeatable automation process.
What I built
- Developed the Java/Spring Boot application and monitoring integrations.
- Combined rules, scheduled execution and a web interface in one service.
How it worked
- Quartz scheduled operational checks against the integrated endpoints.
- Rule-based monitoring and automation standardised recurring support activities.
09

Citi Bank (via Infosys) · 2014–2017
Runbook Automation: Linux operations through one portal
I built a web application that let middleware support teams run routine tasks across Linux servers from a single portal. Engineers defined a runbook—a reusable set of commands or existing scripts—then ran it on demand or on a schedule, with execution results and an audit trail.
Nearly 5Kusers
2K+Linux servers onboarded
~40%fewer person-hours on manual Linux BAU work
The problem
- Support engineers repeatedly logged into individual Linux servers to perform routine operational tasks.
- One task involved manually adding or removing thousands of SVN usernames in access-control files, creating opportunities for errors.
What I built
- Proposed and developed a PoC that processed uploaded access requests and automated SVN permission changes.
- Expanded it into a platform where teams defined reusable runbooks for different tasks, including planned business-continuity exercises.
How it worked
- Define commands or reference existing server scripts; save the runbook in Oracle.
- Launch it through the portal or schedule it with Quartz. A multithreaded Java engine ran independent runbooks in parallel over SSH.
- Review execution results and detailed errors, with retries when configured.
10

Citi Bank (via Infosys) · 2014–2017
DevTools Support Assistant: natural-language help
I created a Kore.ai chatbot that helped DevTools users resolve everyday usage, configuration and process questions through natural-language conversation. An enriched knowledge bank brought support guidance directly to users across a community of approximately 40,000 people, reducing the support team’s time spent resolving user queries by around 30%.
~40Kusers in the supported DevTools community
~30%less support time spent resolving user queries
The problem
- Users repeatedly contacted support for help using tools, making small configuration changes or following processes.
- At the scale of the developer community, answering recurring questions consumed substantial support effort.
What I built
- Developed a conversational support assistant using Kore.ai.
- Enriched its knowledge bank with guidance for Jira, Confluence, Bitbucket, JFrog Artifactory, Jenkins and other runtime and platform applications.
How it worked
- Users described a query in natural language; the assistant returned relevant knowledge to help them resolve it.
- A common conversational entry point made support guidance reusable across the tools ecosystem.
- Self-service answers reduced reliance on engineers responding individually to routine questions.