As a constellation of banking apps, Citi uses a large variety of UI elements built for niche purposes. Developing these sets was a large part of design and maintenance, as new paradigms evolved and replaced older ones. Working through these problems required a tight coordination with the UX team, and precise redlines for the developers.
A great portion of the flows that I worked at dealt with either investment, or upgrades from regular to Gold and Premium accounts. Others focused on particular scenarios such as KYC compliance and account recovery: unwanted events that required simultaneously a sense of urgency and tactful communication.
Developing these involved a lot of the new prototyping tools that were common at the time, most notably inVision.