Product questions you can see,
test, and challenge.

I work in payments and regulated platforms. These are projects I’ve built to understand unfamiliar systems, try product ideas, and explore what AI makes possible.

  • 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

An agent that plans around upcoming bills and surplus cash. Done well, this could help customers avoid transfers that leave them short for upcoming bills and earn more interest on money they don’t need immediately.

The agent forecasts cash needs and recommends how to allocate money between checking and savings. Financial calculations follow fixed rules, and the recommendation explains its assumptions. I’m testing how it should respond when the available information is incomplete.

Cashflow-Based Risk Modeler

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

Testing how cash-flow patterns assess credit risk.

I used synthetic profiles to test a model built from transaction patterns. XGBoost produces the scores, and SHAP shows which features contribute to them. The experiment asks whether cash-flow behavior could reveal risk earlier and make the score easier to explain. It is not a production underwriting model.

How a goal becomes an agent’s assignment.

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.
  • Defined roles and handoffsEach milestone receives an orchestrator; tickets are assigned to workers and reviewers through explicit handoff packets. The shared plan records who owns each ticket, what it depends on, and who reviews it.
  • 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 started with a management problem: if several AI agents were working at once, how would a person know what each one was doing and when to step in? I began with a pixel office because it gave that work a physical shape. Each agent had a role, a place, an assignment, and a visible status.

Making the work visible exposed a harder problem. Seeing activity is different from understanding it. The system needed to show how a goal became a plan, who owned each part, where work was blocked, and what evidence justified calling it complete.

The office now preserves the plan, assigns every task, and shows when work is waiting, blocked, under review, or complete. Each agent receives only the context needed for its assignment. A result is accepted only when the system can connect it to evidence from the work.

I use the office to run real software projects and watch where my own understanding breaks down. If I cannot tell who owns a task, why an agent stopped, or whether the result is actually complete, that becomes the next product problem. The interface grows from those moments.

Follow a payment after the customer acts.

Payment Rails in Motion compares how ACH, Fedwire, and debit-card payments move through institutions and ledgers. Each rail creates different obligations: batching changes when a payment moves, finality determines whether it can be reversed, and returns can extend its lifecycle beyond settlement.

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 hopClicking a service shows its payment status, transitions, and corresponding ledger entries, so you can follow what changed at each hop.
  • 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. The interface now shows failure paths, compensating entries, and audit history alongside the payment’s progress.

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.

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, and product strategy.

The change with AI-enabled products is that we can make important decisions more visible, see firsthand how the system behaves, and add controls where they are needed.