European FinTech Banking App at Codego
FinTech & PaymentsMobile banking products supporting account onboarding, IBAN operations, SEPA transfers, and secure access.
Role
Flutter Developer
Timeframe
Mar 2024 – Jun 2026
Client
Codego
Platforms
Android · iOS

Context
CodegoPay Individual is a personal banking app for European users. It supports IBAN onboarding, SEPA and SEPA Instant transfers, direct debit, biometric payment authorization, and always-on account access.
The problem: The product needed a reliable mobile interface for sensitive financial flows, with strong authentication, clear transaction states, and consistent behavior across Android and iOS.
Team & Ownership
Worked within a product team alongside backend engineers, QA, and product managers.
I contributed to the Flutter mobile implementation, API integration, and release preparation. Some architectural and backend decisions were owned by other team members.
Challenges
- —Complex API states for pending, failed, and completed transfers.
- —Secure session expiry and re-authentication flows.
- —Platform differences in biometric APIs and background behavior.
- —Maintaining stability across multiple production releases.
Key Contributions
- —Implemented transfer-state handling and transaction-history screens.
- —Built biometric authorization entry points.
- —Integrated Firebase Cloud Messaging for account notifications.
- —Resolved production issues reported through Crashlytics.
- —Prepared and shipped multiple store releases.
Key decisions
BLoC for transfer state
Transfer flows involve multiple async states. BLoC kept the UI predictable and made edge cases easier to test.
Secure storage for tokens
Used platform-specific secure storage so session tokens were not kept in plain preferences.
Results
- —Shipped to Play Store and App Store.
- —Integrated production transfer and KYC flows.
- —Supported ongoing production releases and crash monitoring.
Lessons Learned
- —Financial apps require rigorous state modeling and clear error messaging.
- —Platform biometric APIs differ enough to justify abstraction and separate testing.
Gallery

Personal banking dashboard