A high-density console for running bulk payment batches — designed for finance operators who upload thousands of payouts at a time. Built around reconciliation, maker-checker approvals, and an audit trail that holds up under regulatory review.
Masspay handles payment batches — sometimes 5,000 transactions in a single upload. A misread row, a wrong currency code, a duplicate IBAN: any one of them can cost real money or trigger an AML review. The product had to be calm, scannable, and honest about what was about to happen.
My job was to redesign the operator console around three jobs: prepare a batch, approve a batch, and prove what happened. Every other screen had to support those three goals or be removed.
Masspay operators look at this console for hours a day. They develop muscle memory and pattern recognition. The design choice that mattered most was density: we kept information dense, type small (but legible), and white space disciplined. We stopped chasing the consumer-app look and leaned into something closer to a trading terminal.
Friction can be the feature. A confirm dialog with a typed amount-match is annoying in consumer apps. In Masspay, it prevented at least three near-misses in the first month.
Document the language of statuses. "Pending" can mean four different things in a payments backend. We wrote a one-page glossary, shipped it to the design system, and used it as the source of truth for tooltip copy.
Design for the worst day. The default screen state shouldn't be "everything is fine". It should be "everything is fine, but here's where you click if it's not."