That Time I Rebuilt a Bank's Entire Web Experience
Early in my career, at Vibe Tecnologia in Brazil, I got thrown into a project that in hindsight was probably too big for my experience level at the time. We were rebuilding the entire web app for a private bank's customers. Not a redesign. Not a facelift. A full rewrite.
Why it was terrifying
Banking apps have this wonderful quality where every bug is someone's money. Every slow page load is someone checking their balance and panicking for a second. Every confusing label is a support call. The stakes are quietly enormous, even if the app itself looks like "just another dashboard."
The existing app was old, slow, and painful to navigate. Customers complained. The bank wanted something modern. I was tasked with implementing the new experience using Angular 7 and TypeScript.
What I actually did
I built components. Lots of components. Angular's component architecture was perfect for this - every piece of the UI (account summary, transaction list, transfer forms) became its own self-contained module. It sounds obvious now, but at the time, coming from a world of jQuery soup, it felt like a revelation.
State management was the trickiest part. A banking app has a lot of interconnected data - authentication state, account balances, transaction history, pending operations - and all of it needs to stay in sync. I learned more about reactive programming patterns in those months than in any course I'd ever taken.
We also made the whole thing responsive, which in 2018 for a Brazilian bank's web portal was genuinely uncommon. Most of their customers were accessing it from phones, and nobody had really optimized for that before.
The result
The bank's customers were happy. That sentence doesn't convey how rare this is. Banks change things, people complain. That's the natural order. But this time, the feedback was actually positive. People found it easier to use, faster to load, and less frustrating to navigate.
For me personally, this project was formative. It was the first time I saw how frontend engineering, done well, directly impacts how people feel about a product. Not in an abstract "user experience matters" way, but in a very concrete "someone can now check their balance in 2 seconds instead of 15" way.
I've worked on more complex systems since, but this one sticks with me. Sometimes the most impactful work is just making something that was painful... not painful anymore.