Daremit
Two Flutter apps moving real money, live on both stores — plus the Spring Boot APIs, payment integrations, and KYC/KYB behind them.
- Client
- Dadanada Group
- Role
- Senior Full-Stack Engineer
- Period
- Dec 2023 — Present
- Links
- App Store
iOS + Android
live in production
2
payment providers integrated
KYC + KYB
Onfido compliance flows
2FA + biometrics
authentication layers
Problem
Dadanada needed two apps: Daremit for people sending money home, and Daremit Agent for the agents who serve them, plus a web platform. Money crossing borders means regulation — identity checks for individuals, and for businesses the Principals and ultimate beneficial owners behind them. Payments run through two outside providers, Vi Americas and Money International, each with its own integration. I own both sides: the Flutter apps and the Spring Boot services they talk to.
Approach
The apps never talk to a payment provider directly. They call internal Spring Boot APIs I wrote in Java — wallet, transactions, onboarding — and those services own the provider integrations. Where a flow has to finish on a provider's own page, the app opens it in an in-app browser instead of reimplementing it.
Compliance splits the same way. The Onfido SDK handles identity verification on the device; the KYC and KYB flows for Principals and UBOs live on the server. Sign-in is layered: email, identity providers, PIN, biometrics, 2FA. Onboarding works across regions and languages. The release path is deliberately dull — Jenkins and Bitbucket, SonarQube, tests, Sentry.
The apps never talk to a payment provider directly.
Outcome
Both apps are live on the App Store and Google Play, and I have owned the stack since December 2023. It is regulated fintech, so I don't publish user or volume numbers. What I can show is the surface area: two apps handling real money, both provider integrations, the compliance flows behind onboarding, and a release path with static analysis, tests, and monitoring in it.