2025 Financial Technology

Dwolla Dashboard Modernization

0 % 0 %
Modernization Progress
Dashboard modernization contribution
0 +
Active Users
Dashboard users served
Billions
API Requests
Backend systems processing annually
Daily
Deployments
CI/CD pipeline production releases
01

Project Overview

Dwolla's Dashboard was 33% modernized when I joined. It was 57% when I left. Three months, daily production deployments, 1,200+ users, and a backend processing billions of API requests annually.

The work was frontend-heavy: Next.js and Material UI for feature development, with Scala on the backend side for API integrations and webhook handling. Every component built for the design system was documented in Storybook so future engineers wouldn't have to reverse-engineer what it does or how it behaves.

Code went to production daily through CI/CD pipelines. Sprint reviews and code reviews were where the real learning happened — shipping to a financial platform with strict compliance requirements forces a level of rigor that personal projects don't.

02

My Role

Frontend Development

Built and shipped Dashboard features in Next.js with Material UI. Responsive, accessible, and going to production the same day the PR merged.

Design System

Created React components for the shared design system and documented each in Storybook — props, variants, edge cases, accessibility notes. The next engineer who touches it won't be guessing.

Backend Integration

Worked with Scala APIs for payment data fetching and webhook handling, integrating frontend features with backend systems processing billions of requests annually.

Code Reviews and Sprints

Participated in daily code reviews, sprint planning, and engineering demos within a cross-functional product team. More learning happened in review comments than anywhere else.

03

Technical Stack

Frontend

Next.js React framework
React Component library
Material UI UI components
Storybook Design system docs

Backend

Scala Backend services
REST APIs Data integration
Webhooks Event handling
API Gateway Request routing

DevOps & Process

CI/CD Pipelines Daily deployments
Agile/Scrum Sprint planning
Code Reviews Quality assurance
Accessibility WCAG compliance
04

Challenges & Solutions

Modernizing a Live Codebase

The existing codebase had inconsistent patterns, outdated dependencies, and tightly coupled components. Touching one thing risked breaking three others.

Fix. Strangler fig pattern — new components replace old ones piece by piece while the existing functionality stays live. Storybook documentation for every new component so the next engineer knows exactly what they're working with before they start.

Slow Initial Page Loads

Initial page loads over 8 seconds, driven by large bundle sizes and data fetching that blocked rendering instead of loading in the background.

Fix. Route-level code splitting, lazy loading for heavy components, and optimistic UI updates so the interface responds immediately. React Query for caching and background refetching so data is never stale without the user noticing.

PCI DSS Compliance on the Frontend

A financial platform handling payment data has a different relationship with the frontend than a typical SaaS product. Every user interaction that touches sensitive data is a compliance surface.

Fix. Secure token handling, XSS prevention, CSP headers, and encrypted channels with audit logging on every sensitive operation. The compliance requirements became a forcing function for better security patterns across the whole codebase.

05

Key Learnings

Production financial software changes what "good enough" means. The standards aren't higher because someone decided to be strict — they're higher because the consequences of being wrong are different.

01

Code reviews at a real company are a different kind of education. Reviewers who have been maintaining the codebase for years will catch things no linter will.

02

Design system documentation isn't optional when 1,200+ users depend on the interface. Storybook stories are the contract between the component and every engineer who uses it.

03

Incremental modernization is an engineering strategy, not a compromise. A 33% to 57% jump in three months happened because the migration was planned to minimize risk, not maximize speed.

04

Daily deployments to production change your relationship with code quality. When you ship every day, you stop thinking of testing as a gate and start thinking of it as a survival skill.