








Swipe or use the arrow keys
The Problem
BCA wanted its customers to book KAI train tickets without ever leaving their banking app. That meant an entire booking journey (destination search, schedule listing, passenger data, seat selection, payment confirmation and booking history) living inside myBCA on both mobile and web, and feeling native to it rather than bolted on.
What I Built
As the Front-End Engineer I architected the whole UI layer in React, Vite and TypeScript, with strict form validation in Yup and state managed through Redux. The hard part was myBCA's web-view: performance optimisation and cross-environment compatibility were what decided whether the experience felt native or borrowed, so both drove every implementation choice.