Product questions you can see,
test, and challenge.

My background is in payments infrastructure, regulated banking operations, risk, and platform strategy. I use AI and working prototypes to test decisions earlier, explain difficult systems, and learn quickly in new domains.

  • Payments platforms
  • Regulated operations
  • AI-enabled product development

Liquidity Assistant

Liquidity Assistant agent view showing checking and savings balances, extra interest earned, and a projected cashflow decision

A cash-optimization agent with deterministic financial logic.

Liquidity Assistant explores how an AI agent can make a recommendation while keeping the underlying financial decision explainable and providing fallback behavior when information is incomplete.

Cashflow-Based Risk Modeler

Cashflow-Based Risk Modeler dashboard showing a synthetic population, risk score distribution, and profile-level results

An early test of cash-flow data as a credit-risk signal.

The current proof uses transaction-derived features, synthetic profiles, XGBoost, and SHAP explanations to test whether cash-flow behavior could provide an earlier, more explainable signal. It is not a production underwriting model.

An operating model for agentic work.

The project starts with a practical management problem: once AI agents can plan and delegate work, how does a person see who owns what, where work has stopped, and whether a result is ready to accept?

The first version makes roles, work, approvals, budgets, permissions, and verification visible in one environment.

PlanDelegateExecuteVerify
Animated Agent Office showing the Scope Shepherd agent reviewing a tightly scoped repair
Scope Shepherd working through a constrained repair inside the office.

Capabilities explored

  • From intent to executable workA PMO conversation turns an ambiguous goal into a reviewable plan with milestones, tickets, dependencies, owners, file boundaries, verification commands, and done criteria. Nothing is committed until the human confirms the exact plan.
  • An organization, not a swarmEach milestone receives an orchestrator; tickets are assigned to workers and reviewers through explicit handoff packets. Ownership, dependencies, and review paths remain visible instead of disappearing into one general-purpose agent.
  • Context assembled at the last milePlans, decisions, role memory, and work state stay outside the model. When a role is activated, it receives only the approved packet and references needed for that step; results are then written back to the shared record.
  • Execution you can inspectApproved sandbox projects can run real work in bounded parallel lanes. The office and planning board expose current steps, files touched, outputs, blockers, delegation paths, and the reason work has stopped.
  • Evidence before acceptancePermissions and path boundaries are enforced before execution, while every decision is written to a replayable operational record. A verifier examines command evidence; only a passing result can be accepted.

The journey

Animated Agent Office began with a management question: what would a leader need to see before trusting a group of agents with meaningful work? I built the pixel office as an operating surface, giving a person a way to grasp the scale of the work agents were doing on their behalf, understand each agent’s mission, and see where the work stood. That led to an environment in which every agent has a role, location, workload, and visible relationship to the rest of the organization.

As soon as the work became visible, gaps in the operating model became visible too. A conversation needed to become a durable plan. Delegation needed handoff packets, ownership, dependencies, file boundaries, and stop conditions. Autonomy needed budgets, concurrency limits, permissions, and explicit reasons for stopping. Review needed evidence from the work itself rather than the agent’s confidence.

Those discoveries pushed the prototype from a visual metaphor into a working study of agentic management. The current system keeps plans and decisions outside the model, assembles context only when a role acts, and records enough of each run for a person to inspect or intervene.

The prototype is still evolving. Each iteration turns an abstract question about the future of work into an organizational choice that can be tested, challenged, and improved.

Follow a payment after the customer acts.

Payment Rails in Motion compares how ACH, Fedwire, and debit-card payments move through institutions and ledgers. The goal is not to make the rails look identical. It is to show where batching, reversibility, finality, returns, and settlement create different product and operational obligations.

Payment Rails in Motion showing an ACH payment moving between institutions and ledgers
An ACH payment in motion across the simulated system.

Capabilities explored

  • A bank-shaped systemA payment gateway, core ledger, receiving-bank service, and simulated Federal Reserve operate as distinct components with their own state and institutional boundaries.
  • Rail-aware executionACH batching and returns, Fedwire gross settlement and finality, and debit authorization, capture, and settlement each follow their own processing model.
  • Inspection at every hopPayment status, service transitions, and the corresponding ledger entries can be followed across the system rather than disappearing behind a success screen.
  • Operational failure statesReturns, rejected transitions, compensating entries, and immutable, idempotent ledger writes make the consequences of failure visible and testable.

The journey

Payment Rails in Motion began with an onboarding problem: how do you make sense of the US financial ecosystem? When a customer hits “Send,” a single confirmation screen compresses banks, networks, ledger entries, settlement windows, and exceptions into one moment, even though each rail creates different obligations for the product and its operators. That machinery is opaque to product managers learning the domain, and I wanted a simpler way to make it legible.

I started by modeling the participants as separate components: a payment gateway, bank ledger, receiving bank, and simulated Federal Reserve. I then made the movement of state among them visible. That exposed decisions a static diagram could easily hide: which institution owns the authoritative state, when funds become available, which instructions can be retried, and which ledger writes must remain immutable and idempotent.

Adding ACH, Fedwire, and debit required the system to behave according to each rail. Wire finality changes how errors must be handled. ACH returns extend the lifecycle beyond the original posting. Debit separates authorization from clearing and settlement. Failure paths, compensating entries, and audit history became part of the product experience rather than background implementation detail.

The prototype is a controlled simulation, not a production payment processor. Its value is making infrastructure concrete enough for a team to inspect the assumptions, product obligations, and operational consequences before those decisions harden.

Build enough to have
a better conversation.

I use prototypes to turn strategic questions into something a team can inspect, challenge, and learn from. A working system exposes assumptions that can stay hidden in a deck: what the product needs to know, where judgment enters, how failure appears, and which controls matter.

I build early enough that the evidence can still change the decision. A working model gives teams something concrete to challenge, reveals constraints before commitments harden, and helps us make better decisions together.

My foundation is payments
and regulated platform work.

Across Capital One, Plaid, Meta, Amazon, and Microsoft, my work has included payments infrastructure, platform product management, product strategy, risk, governance, operational resilience, and adoption.

That experience shapes how I approach newer AI-enabled products: make the important decisions visible, examine how the system behaves under pressure, and add controls where the consequences require them.