The problem
Yirifi.ai needed its risk-intelligence platform in users’ pockets — a mobile companion to the web product — with no existing mobile team, no mobile architecture, and requirements arriving straight from the CEO and business stakeholders.
My role
Everything mobile. I defined the architecture, wrote the code, set up the release pipeline, and later hired-in and mentored junior developers as the team grew — while also running project management for the wider product after an org restructure made me sole project manager.
Architecture decisions
- Riverpod for state and dependency injection — one mental model for both, keeping the widget tree declarative and the data layer swappable for tests.
- A disciplined network layer on Dio — interceptor-based auth, retry and error normalization so feature code never touches raw HTTP.
- Feature delivery with kill-switches — Firebase Remote Config and Statsig gates let business toggle features and run experiments without app-store release cycles.
- Search via Meilisearch and deep linking for share-able entity pages; Flutter ScreenUtil for responsive layouts across device classes.
- FastLane CI/CD for reproducible releases to both stores, with Crashlytics wired from day one.
The hardest problem
Being the entire mobile department during certification. Every architecture choice had to hold up under ISO 27001 / SOC 2 audit scrutiny — release evidence, access control, change management — while still shipping features weekly. The delivery process I built passed certification and survived the audits that followed.
Outcome
A production Flutter app on both platforms, an architecture a growing team now builds on, and a delivery process that is simultaneously fast (remote-config feature gates, automated releases) and audit-proof.