EFI Soluciones
EFI (Equilibrio Financiero) makes short-term loans, over 14 weeks, and ran its entire operation on Excel. I built the system that digitized it: a Ruby on Rails web portal to manage loans, clients, staff and money, and a Flutter mobile app, published on Google Play, for each role’s field work.
Context
From Excel to a system
EFI is a lender with its own operations and in-house legal team. Loans, collections, staff and supervision all lived in Excel spreadsheets. It needed to digitize its entire operation while respecting how it already worked: the business rules and decisions are EFI’s; my job is to turn them into a reliable system.
Web portal
The whole operation in one place
Mobile app
One app, one flow per role
The same Flutter app adapts to whoever signs in. It includes push notifications, camera attachments, session control, user blocking and new-version notices.
The hardest part
My first mobile app
I had no mobile development experience. I learned Flutter, app architecture with Riverpod and GoRouter, Firebase Cloud Messaging on Google Cloud for push notifications and the Google Play publishing process, until the app was in production for EFI’s whole team.
Technical decisions
Decimal-precision amounts
Every amount is handled as a decimal, never as floating point, and interest calculation lives in a single module.
Change auditing
A record of who changed what in the main models with PaperTrail, and a viewer for administrators.
Private files
Client files and reports with personal data live in a private Cloudflare R2 bucket, served through short-lived signed links.
Infrastructure
Migration from Heroku to Render for web, worker and PostgreSQL, and from a suspended .com.mx domain to .com, with DNS on Cloudflare.