The story behind the work.
The problem that started each project, the constraints that shaped it, and what happened once it shipped.

BRISPOT: Internal Lending Platform
BRI · Internal Lending PlatformRedesigning BRISPOT's Briguna approval workflow to close the hand-off gaps between Initiator, Approver, and Credit Admin Officer, for a workflow now handling 1,000 to 3,000 applications a day per branch.
~3 weeks → 3-5 daysloan approval time

BSI: QRIS Domestik Payment Flow
Bank Syariah IndonesiaMapping two QRIS payment paths (Open Amount and Closed Amount) into one connected flow, with PIN confirmation, optional tipping, and every failure state a scan can hit.

BSI: PIN Confirmation Security
Bank Syariah IndonesiaCatching a tap-feedback pattern that leaked a customer's PIN through color alone, validating the risk with internal BSI users, and redesigning the confirmation screen so the number pad gives away nothing.
Teal on press → no color at allPIN pad feedback

Natuna Digilab: Unbranded Design System
Design System · PersonalA token-first, unbranded design system built from the recurring weak points I kept hitting across four banking teams. 1,600+ components, five token categories, built on its own terms.
YouTube: Redesigning the Download Feature
An independent case study on YouTube's offline download feature: validating commuter frustrations through interviews, then cutting deletion and reordering down from double-digit taps to a few.
Screens live inside the case study.
Card Delivery Status: Closing a Visibility Gap
Benchmarking three banks that already shipped card delivery tracking, then designing the state most of them still handle badly: the delivery that fails.
Client and screens withheld until launch.