From building PingAn's P&C insurance platform with a team of 15 in 1992, to shipping an AI accounting agent in a production ERP in 2025 — the throughline is owning hard technical problems end to end.
generating a tailored summary…Implemented key APIs for the Cowork AI Accounting Agent — first LLM-driven automation in the production ERP.
Contributed to the AI Accounting Agent within the Encompass ERP, implementing key APIs for the 'Draft Check Run' skill (agent analyses AP Aging, identifies purchases due by a target date, and autonomously creates Check Run records and transactions for controller review) and the 'Create Journal Entry' skill (LLM generates balanced manual JEs with correct debit/credit lines and prompted memo fields).
First LLM integration in production ERP accounting module
Delivered Bank Feeds from zero to GA — Encompass's first open-banking integration via Plaid.
Owned full-stack development of the Bank Feeds product: Plaid API integration syncing real-time bank transactions into the Encompass GL, covering OAuth token management, webhook processing, and daily scheduled sync. Designed the live Bank Reconciliation dashboard (EDS-compliant): bank accounts mapped to GL accounts, automated JE auto-creation rules, and merchant-ID normalisation on matched transactions. Evaluated alternative open-banking providers (Kyriba, Wells Fargo direct connection) and produced a strategic platform recommendation. Resolved a Q1 2026 security-scan SQL injection vulnerability in BankFeeds.cs.
Zero to GA open-banking product · SQL injection vulnerability found and patched
Maintained and improved Sage Intacct and QuickBooks integrations serving multiple enterprise customers.
Resolved a parallel-execution race condition causing 3× duplicate journal-entry syncs per company in Sage Intacct; updated Celigo webhook flows for new Session ID authentication; patched a test-database environment leaking EOD data to live Sage Intacct production endpoint. For QuickBooks Online, fixed a same-day OAuth authentication failure and migrated all Intuit Ipp SDK libraries from pre-imported DLLs to NuGet references, eliminating a security and tech-debt risk flagged in an audit.
Maintained 95%+ done-rate across 119 Jira issues including 43 high/highest-priority items.
Completed 119 issues over two years spanning AI features, open-banking integration, third-party finance platform connectors, AP/AR improvements, GL work, TTB excise tax compliance, and multi-state tax reporting — with zero critical regressions on the owned module. Delivery included 45 feature requests, 32 bugs, 23 subtasks, and 18 infrastructure maintenance items.
119 issues completed · 43 high/highest-priority · 95%+ done-rate
Delivered NAB interest derivative messaging templates for Calypso as part of Project Utah.
Collaborated with Calypso Australia to construct messaging and confirmation templates for interest derivative products (Project Utah for NAB). Also contributed to the GIC Calypso Upgrade, restructuring exchange points and interfaces for products including CIS, ELS, Variance Swap, FX, Fixed Income, and Commodity Options.
Designed and implemented a Common Data Model based on fpML, standardising data across Calypso's multi-channel trading platform.
Created a Common Data Model (CDM) at middleware level to standardise data flowing in from diverse trading platforms (Baxter/Bloomberg/FlexTrade/Currenex, FXConnect, Autobahn, and Online FX). The model was based on the industry-standard fpML, maximising reusability and adaptability to new products. Delivered Credient (Sungard/Adaptive) realtime JMS interface, Oracle GL Engine, Curve update engine, and channel interfaces for FX products spanning spot, forward, swap, options, interest rate swaps, commodity derivatives, and precious metals.
fpML-based CDM serving 10+ trading channels
Led team of three to build Electronic Payment Services (EPS) for corporate clients, completing the bank's online product suite.
Initiated and led the Electronic Payment Services project for corporate banking clients, leading a team of three engineers. The service completed the bank's online product offerings and significantly improved its competitiveness in the corporate payments market.
Delivered AUSTRAC IFTI-format AML compliance reporting under new Anti-Money Laundering legislation.
Worked closely with business units to deliver the AUSTRAC Report in IFTI format, meeting new AML legislation requirements. This was a time-critical compliance project with direct regulatory consequences for the bank.
Built the FX Revaluation, P&L Monitoring, and Matching module used daily by Risk Control and Treasury.
In collaboration with Risk Control, Treasury Desk, and Back Office Settlements, diagnosed and streamlined FX Revaluation, FX P&L Monitoring, and FX/MM Matching processes. Built a new module for real-time data collection and calculation, enabling the business to square mismatched positions and fix process errors before settlement. The module became a core operations tool.
Built the bank's first in-house CRM (Data Pooling System) from concept to full operation.
Established the very first in-house CRM, the Data Pooling System (DPS), from initial concept through full operation. Also pioneered an Intranet Portal with Excel/PDF generation, search engine, and reporting capabilities that became the bank's primary platform for data and report sharing, improving Business Continuity by automating previously manual processes.
Maintained and extended the Midas Banking System, building foundational commercial banking software knowledge.
Worked on development, maintenance, and customer support for the Midas Banking System using RPG, CL, and Office/400. Gained foundational understanding of commercial banking software architecture, release management, and enterprise software project delivery.
Led a team of 6 building General Insurance System V1.0, quota share reinsurance automation, and Accounting System.
Supervised a team of six programmers delivering General Insurance System V1.0, quota share reinsurance automation, and an Accounting System. Also personally contributed to development of the Underwriting System, Motor Insurance Claim System, and Marine Cargo System using RPG400, CL, DB2, and Foxpro.
Led 6-person engineering team
Engineering Lead owning the full accounting module of a SaaS ERP for North American beverage distributors — spanning AP/AR, GL, bank reconciliation, tax compliance, and integrations — from technical design through production release.
Click to expand achievements
Senior consulting role delivering complex financial systems integration work for major Australian financial institutions, primarily around the Calypso trading platform.
Click to expand achievements
Interface specialist on the FXR project implementing Calypso for WIB's commodities business across front, middle, and back office.
Click to expand achievements
Seven-year tenure delivering mission-critical financial systems — from AML compliance reporting to FX straight-through processing — culminating in a project lead role owning delivery across multiple business units.
Click to expand achievements
Development, maintenance, and customer support for the Midas Banking System, gaining deep exposure to commercial banking software and project management practices.
Click to expand achievements
Career-opening role at one of China's largest insurance groups — leading teams building the core insurance platforms that underpinned the business.
Click to expand achievements
LLM-powered accounting agent skills embedded in a production ERP, autonomously drafting check runs and journal entries for controller review.
Encompass's first open-banking integration: real-time bank transaction sync into the GL with automated reconciliation rules, built from zero to GA.
The bank's first in-house CRM and an intranet portal that became the primary platform for data sharing across the Sydney office — plus Electronic Payment Services for corporate clients.
When we kicked off Bank Feeds, Plaid was the obvious choice — everyone knows Plaid. But I still ran a structured evaluation of Kyriba and a potential direct-connection path with Wells Fargo before recommending Plaid for GA. The lesson was that 'obvious' technology choices still need to be interrogated: Kyriba had better enterprise support SLAs; the Wells Fargo direct path would have eliminated third-party risk. Plaid won on developer experience and coverage breadth for the specific bank mix our customers use — but I wouldn't have known that with confidence without doing the evaluation. A platform recommendation that only considered one platform isn't a recommendation.
The Q1 2026 security scan flagged a SQL injection vulnerability in BankFeeds.cs — in code I had written. The exploit scenario was serious: an attacker could craft a bank feed rule name to extract Plaid OAuth access tokens directly from the database, giving them live read access to customers' bank accounts. There's a specific feeling that comes with reading that kind of finding about your own code. I patched and verified it the same day. But the more lasting outcome was that it changed how I review string handling in any database-adjacent code — not as a checklist item, but as the thing that protects someone's bank account.
In the early 2000s at Bank of Tokyo-Mitsubishi UFJ, there was no in-house CRM. Client exposure data lived in spreadsheets and individual relationships. I proposed and built the Data Pooling System from concept through full operation — without a PM, without a design document, just a clear understanding of what the Corporate Credit Department actually needed to do their jobs. It became part of core operations. Years later that project is the clearest example I have of what it means to understand a business problem deeply enough to build the right thing without being told what to build.
At Westpac, the FXR project had to interface with a dozen trading channels — Bloomberg, FlexTrade, Currenex, FXConnect, Autobahn, and more — each with its own data format and product representation. The solution was a Common Data Model at the middleware layer, built on fpML (the industry-standard financial products markup language). The model's design principle was that every product — spot, forward, swap, option, interest rate swap, commodity derivative — should map into a single canonical form that Calypso could consume. That one architectural decision is what made it feasible to add new trading channels later without touching the core integration logic.