
Embat

Treasury teams spent 6 hours a week clicking dropdowns. I rebuilt the dropdown.
The challenge
Embat is a treasury platform for businesses — it connects to banks, ERPs and accounting tools to reconcile millions of transactions. Finance teams use it 6+ hours a day.
Their selection components were drowning. Picking one of 400 accounts. Filtering 12k transactions by 8 categories. The library default wasn’t designed for the scale of corporate finance data.
Numbers
How I worked
01Watched how treasury people actually click
Recorded 8 finance users for 30 minutes each. They never read dropdown items — they typed three letters and committed. The component had to be a search input first.

02Virtualization built in from day one
Most fintech dropdowns choke past 1000 items. Embat’s biggest customer had 60k bank accounts. Virtualization wasn’t a feature — it was a precondition.

03Keyboard-first interaction
Treasury teams live on the keyboard. ↑↓ to navigate, Enter to commit, Esc to clear. Reconciliation can be done with one hand on the keyboard, the other holding coffee.

04States no library covered
Bulk selection. Partial multi-select. Async loading. Paginated remote sources. No-results with smart suggestions. Each state got a Figma + a docs page + a unit test before merging.

05Shipped accessibility before features
WCAG 2.1 AA from version one. Screen reader announcements on state change. Focus trap solved at the foundation, not patched per consumer. The audit closed with zero findings.

06Adopted by 14 of 14 teams
No mandate. We made the new dropdown clearly better than rolling your own. The adoption dashboard told the story: 98% in six months, with the holdout team migrating the week after.
07One system, every control
The dropdown set the rules — tokens, states, accessibility, autolayout, light and dark — and the rest of the system inherited them. Here it is in both themes, then the buttons that followed it: primary, secondary and tertiary, each with default, hover, pressed and disabled states, all driven by the same tokens so every team built from one source of truth.







What changed
- Treasury users saved 6 hours per week on selection actions, measured in production telemetry.
- Component adopted by 14 of 14 product teams within six months.
- Accessibility audit issues dropped from 23 to 0.
- Bug reports on selection inputs fell 81% quarter-over-quarter.
One lesson
The most boring component on the page was the most used. Spending three months on it was the right call.