Scaling Belly past a million users
Scaled the core Rails app from 300k to 1M+ users and co-built the monitoring system for 4,000+ in-store terminals.
Background
Belly was a loyalty program for local businesses: an iPad on the counter, a card or app for the customer, points for showing up. That meant a Rails API serving iOS, Android, and web clients, and a fleet of iPads living in coffee shops with whatever wifi the coffee shop had.
What I did
When I joined, the core Rails app had around 300,000 users. By the time I left it was past a million. Getting there was performance work, test coverage, and stability on the core app and API, plus shipping the features the business needed alongside the iOS, Android, and web teams.
The part I liked most was the terminals. I co-designed and built the management and monitoring system for 4,000+ Belly iPads in the field: is it online, is it checking in, is it on the right version, and can we tell before the merchant calls. I also built and supported a custom reporting database for the business analysts, and worked with the product directors to mine it for system performance and user behavior.
Things I learned
- Devices in the wild fail in ways a staging environment never will. Bad wifi is the default, not the exception.
- A separate reporting database saves the production one from analysts and saves the analysts from production.
- Going from 300k to 1M users is mostly finding the ten queries that matter.