Work

Penny Pension App Rebuild

Mobile
Flutter
Engineering Leadership
Fintech
Training
Team Enablement
Technical Strategy

Migrated Penny's Ionic Cordova app to Flutter via FlutterFlow while leveling up their existing team and shipping custom-coded integrations like Intercom without adding headcount.

Modern mobile app screens for an aggregated retirement savings platform

The Challenge

Penny’s retirement savings app had years of Cordova/Ionic debt that slowed releases, limited native performance, and made mobile-specific features painful to ship. The business needed a modern, maintainable stack without expanding headcount or pausing roadmap delivery.

The Approach

  • Picked Flutter + FlutterFlow: Selected a visual-first workflow to accelerate delivery while keeping escape hatches for complex native needs.
  • Kept the same team: Built a structured onboarding plan (pairing, code walkthroughs, linting/templates) so existing engineers could contribute immediately instead of hiring a separate mobile team.
  • Production-first increments: Ran the migration feature-by-feature to keep releases flowing and reduce risk of a big-bang rewrite.

Technical Execution

  • Architecture: Established a Flutter module structure with clean separation of presentation, state, and services. Created shared UI kits and theming to mirror Penny’s brand quickly.
  • FlutterFlow to code: Used FlutterFlow for layout speed, then hand-tuned generated code where performance or accessibility required it. Documented the dev loop so the team could repeat it without me.
  • Custom integrations: Implemented native plugins and bindings for Intercom, analytics, deep links, and secure storage, filling the gaps FlutterFlow couldn’t cover out of the box.
  • Testing and delivery: Added widget tests around critical flows and stood up CI builds for iOS/Android so the team could ship confidently from day one.

Team Enablement

  • Ran daily pairing sessions for the first two sprints to transfer patterns.
  • Delivered concise SOPs: branching model, code review checklists, and a “when to drop to code” guide for FlutterFlow.
  • Set up guardrails (analyzer rules, formatting, reusable components) to keep quality high as new contributors joined the codebase.

Outcomes

  • Full migration without new headcount: The existing team shipped the Flutter app while continuing feature work.
  • Faster release cadence: Build times, QA cycles, and store submissions stabilized; hotfixes moved from days to hours.
  • Better UX surface area: Native-feeling interactions and offline resilience that weren’t feasible in the Cordova app.

Penny now has a Flutter codebase their own team can evolve—no agency dependency, no legacy drag, and a clear path for the next set of features.