Amber DunnEngineering Manager · Product & Platform
← Demo Lab

Interactive systems demo · 01

CashFlow Engine

An interactive crypto kiosk controller — from customer action to physical cash outcome.

I built the original controller around a real bill recycler, serial protocol, remote callbacks, persistent cash inventory, and a finite-state machine. This reconstruction lets you explore that engineering without exposing proprietary names, endpoints, infrastructure, or transaction data.

Three good places to start

Try the system from three different angles

01

Buy → Happy path

Watch a bill approach the validator, pause in escrow for the host decision, stack, update inventory, and complete the generalized asset purchase.

02

Sell → Happy path

See the opposite direction: host confirmation, payout planning, physical cash movement out of the recycler, customer pickup, and inventory reconciliation.

03

Inject a failure

Choose a timeout, jam, bad frame, open box, or communication loss and watch the controller switch from normal workflow to containment and recovery.

Interactive reconstruction

Run the kiosk like a customer — then watch the controller think

Device ready
0.0s

Customer view

What the person at the kiosk sees

Waiting
Generalized digital asset kiosk and cash recyclerAn animated kiosk shows cash flexing into escrow, stacking into the recycler, returning to the customer, or dispensing for pickup.BUY DIGITAL ASSETINSERT CASH TO BEGINRECYCLERR2BOX
Kiosk screenBuy digital asset

Insert a $20 bill to begin.

$20.00Demo quote ready

Controller internals

Standby

System
Host APIDevice streamState machineDevice managerSerial / recycler
Physical cash modelRecycler inventory
Inhibited
Recycler A18 × $20
Recycler B6 × $100
Cashbox32 notes
Current journey

    Internal dialog

    Events, callbacks & protocol meaning

    TX-DEMO-4821
    Transaction
    Idle
    Last response
    Standby
    Host decision
    Recovery
    Not required
    Explore the documented state & response catalog

    I condensed the original controller's larger event surface into readable families here. Choose a state to see why it mattered operationally.

    Choose a state above.

    This reconstruction preserves the controller's documented sequencing and failure reasoning while generalizing organization-specific names, payloads, endpoints, and device identifiers. Timing is intentionally compressed for explanation rather than presented as a production benchmark. The digital-asset network step is a generalized host-side wrapper around the documented cash-control subsystem.

    Why this demo exists

    A static diagram cannot show the moment when software intent and physical reality diverge.

    That was the interesting part of this system. Sending a command was never enough. The controller had to wait for the device, understand what physically happened, preserve partial progress, update records, and choose a recovery path that did not accidentally move more money.

    The simulator makes those boundaries visible. On desktop, it is organized as a control-room view so the customer experience, controller state, physical inventory, and internal protocol trace can be followed together. Smaller screens progressively stack those views instead of forcing the desktop density into a narrow layout.

    The digital-asset step is intentionally generalized as the host-side transaction layer. The cash-control sequencing and state behavior are reconstructed from the preserved engineering documentation and portfolio evidence.

    Go deeper

    Want the architecture, reliability decisions, and original project story?

    The case study explains what I inherited, how I decomposed the problem, why explicit state mattered, how I handled uncertain physical outcomes, and what I would modernize today.

    Read the full case study