What I work on
Agents & MCP
Tool calling, multi-tenant MCP gateways, auth boundaries, and eval loops for when the model gets real side effects.
RAG & enterprise AI
Chunking, hybrid retrieval, citations, ACLs, Azure OpenAI / AI Search — the parts that break after the golden-set demo.
.NET, Azure, EV charging
C# services, event-driven integration, OCPP platforms, and the ops detail behind “it works in prod.”
From the blog
Recent writing
All articlesPractical notes with code, tables, and trade-offs — written for engineers and the people who own the delivery risk.
- Code
- Tables
- Trade-offs
- Production notes
- Scoring a Shelf-Price Grid: Margin, Shortfall, and Competitive AnchorsPart 1 said I do not predict a sticker. Part 2 built the demand curve. This post is the commercial layer: how I turn that curve into a…
- Building EV Integration with Greenflux CPMSI built a .NET SDK for EV integration with Greenflux CPMS. A typical charging-app session on Charge Assist is: register an app token, attach a payment method, start,…
- PGP Encryption on Azure Functions: Decrypt In, Encrypt OutPartners still send OpenPGP files. Downstream still wants JSON, zips, and an SFTP drop. I do not hide that work inside one “crypto Function.” I keep pgp encryption…
- Multi-Store Demand Models: Features First, Then One LightGBM Per Store×ProductPart 1 of this series argued that a shelf-price system should not spit out “the right sticker.” It should score a grid with a demand curve underneath. This…
- SFTP In and Out on Azure Functions: publish, sender, and sequenced deliveryPartners still drop files on SFTP. Azure still wants blobs, queues, and a ledger you can audit. SFTP integration on this stack is not “one Function that does…
If you’re stuck on an AI or integration design review
I can talk through architecture, security boundaries, and delivery constraints. Based in Sydney.