All work
2025
TellerOne — A modern banking experience, rebuilt from the ground up
Replaced a legacy jQuery banking interface with a modern React frontend — faster, easier to maintain, and built around the workflows tellers actually use every day.
- Client
- TellerOne
- Role
- Associate Software Engineer · Frontend rebuild
- Year
- 2025
- Stack
- ReactJavaScriptReduxREST APIsBootstrapModern frontend tooling

The brief
TellerOne was running their teller operations on a legacy jQuery frontend that had become expensive to change. Every new feature meant working around the old code, and every bug fix risked breaking something else. Leadership wanted a frontend that matched the ambition of the product roadmap — fast to ship into, easy to reason about, and built to last.
I came in as a frontend engineer and led the rebuild alongside the existing backend team.
Approach
- A component-first rewrite. Started with a small, deliberate set of primitives — buttons, inputs, money displays, status badges — and composed every screen from there. Consistency became the default rather than a checklist.
- Refactored, not rebuilt-and-pray. Around 70% of the legacy jQuery was migrated into the new React architecture in measured steps, with feature parity verified along the way. No big-bang rewrite, no extended freeze.
- A cleaner contract with the backend. Introduced a typed data layer that surfaced errors at the boundary instead of deep inside components, which dramatically shortened debugging cycles.
- Tooling that helps the team, not the engineer who set it up. A consistent dev setup, clear conventions, and code review patterns that gave the rest of the team confidence to ship in the new codebase from day one.
Outcome
- 70%+ of the legacy code retired with no loss of feature parity.
- Feature lead times shortened — work that used to take a week now ships in days.
- A platform the team can grow into, with a foundation ready for the product roadmap ahead.



