Enterprise Platforms
The systems of record I design against, integrate, and hold to account.
NetSuite (ERP, primary) · Salesforce (CRM) · Coupa · Oracle EBS · Avalara · Vertex · Stripe · Workday · Paycor · Zip · Rocketlane
A production-grade system of specialized AI agents that lets people ask their ERP real questions — in plain language, in real time.
An ERP already holds the answer to almost every question a finance team asks. What it lacks is the interface. Getting from "which invoices are about to age past 60 days" to an actual number means saved searches, report builders, and someone who knows exactly where to look.
The harder questions are worse, because they cross subledgers. Collections exposure touches receivables and reporting; a clean quarter summary touches AR, AP, and revenue at once. No single report answers them — a person does, slowly, by stitching modules together.
This system puts a natural-language chat interface on NetSuite, built in Python on the Model Context Protocol (MCP). One orchestrator agent reads each query, routes it to the specialists that own the answer, coordinates them, and synthesizes a single response — including cross-functional answers no individual agent could produce alone.
Each specialist agent is scoped to one financial domain and reaches NetSuite only through MCP tool contracts, so every capability the system has is explicit, typed, and enumerable. Queries resolve against live ERP data, not an export.
| Agent | Domain | Answers for |
|---|---|---|
| Orchestrator Agent | Coordination | Routes queries, coordinates the specialist agents, and synthesizes cross-functional answers. |
| AR Agent | Accounts Receivable | Invoices, customer payments, aging, and collections insights. |
| AP Agent | Accounts Payable | Vendor bills, expenses, and payment status. |
| Revenue Agent | Revenue Recognition | Revenue recognition, deferred revenue, and ARR/MRR breakdowns. |
| Procurement Agent | Procure to Pay | Purchase orders, vendor records, and approval workflows. |
| Reporting Agent | Analytics | Financial summaries and ad-hoc analytics. |
The design rule behind it is the same thesis as the rest of my work: the deterministic 80% stays deterministic. The LLM is reserved for what actually needs language — understanding the question, routing it, and synthesizing the answer — while the data access underneath stays scoped, observable, and auditable per agent. Guardrails are the architecture, not a feature flag.
The systems of record I design against, integrate, and hold to account.
NetSuite (ERP, primary) · Salesforce (CRM) · Coupa · Oracle EBS · Avalara · Vertex · Stripe · Workday · Paycor · Zip · Rocketlane
The full ledger lifecycle — order to cash to close — treated as one architecture, not separate projects.
Order to Cash (O2C) · Procure to Pay (P2P) · Record to Report (R2R) · Revenue Recognition (ASC 606) · Billing & Subscription Management
Pipelines built to fail loudly, retry safely, and leave a trail.
Celigo (iPaaS) · REST / SOAP APIs · Middleware design · AWS pipelines (S3, Transfer Family, SFTP) · CI/CD · Retry frameworks · Observability tooling
Enough depth to build what I design — and to know what shouldn't be built.
SuiteScript 1.0 / 2.x · TypeScript · JavaScript · Python · React · Backbone.js · SuiteCommerce Advanced
High-volume financial data made queryable, reconcilable, and fast.
SQL · SuiteQL · SuiteAnalytics · High-volume Map/Reduce processing
Agentic systems with guardrails first — the 20% that actually needs an LLM.
Agentic systems · Model Context Protocol (MCP) · RAG & embeddings · LLM integration POCs · Python
Controls designed in from day one, not bolted on for the audit.
SOX controls · Audit processes · Role-based access · SIT / UAT / regression · API & integration testing · Data reconciliation & validation
| No. | Credential | Issuer | Year | Featured |
|---|---|---|---|---|
| 3100 | NetSuite Certified Application Developer | Oracle NetSuite | — | Featured |
| 3200 | NetSuite Certified Web Services Developer | Oracle NetSuite | — | Featured |
| 3300 | NetSuite Certified SuiteCommerce Developer | Oracle NetSuite | — | Featured |
| 3400 | NetSuite Certified SuiteFoundation | Oracle NetSuite | — | Featured |
| 3500 | NetSuite Certified AI Foundations Associate | Oracle NetSuite | — | Featured |
| 3600 | Claude 101 | Anthropic | 2026 | Featured |
| 3700 | Claude Code 101 | Anthropic | 2026 | Featured |
Past the vector-database marketing: how text becomes geometry, why chunking strategy decides retrieval quality, and where similarity search quietly fails.
RAG · Embeddings · AI Architecture
Token pricing is the smallest line item. A cost model for agentic workloads — context windows, retries, caching, evaluation — built the way finance would build it.
LLM · Cost · Agentic Systems
What it takes to put a natural-language interface on an ERP without handing a language model the keys: tool contracts, scoped agents, and an orchestrator that knows when not to use AI.
MCP · NetSuite · Agents
Twelve years ago I started automating the unglamorous middle of the enterprise — orders, invoices, ledgers, the systems that have to be right. Since then I have designed and scaled back-office platforms for high-growth businesses: API-driven architectures, financial and operational workflows, and SOX-compliant systems that pass audits without heroics.
That work now converges somewhere specific: AI-driven financial automation. Not chatbots bolted onto an ERP — agentic systems with guardrails, observability, and reconciliation designed in from day one, so the people who actually run the business can ask their systems real questions and trust the answers.
On file