We built a real-estate market-intelligence mobile app that turns official U.S. housing data into an interactive four-tier map — State, Metro, County and ZIP — with 90+ tracked metrics, rendered live on a touch-friendly map and responsive from the whole country down to a single ZIP code.
We led the mobile engineering end-to-end: architecture, data layer and the map itself.
Most map apps show a manageable number of points — restaurants, listings, stores. This app had to show every U.S. ZIP code simultaneously, each carrying dozens of statistics, on a mobile device with limited memory and no guarantee of a fast connection.
The map also had to feel instant: switching metrics, zooming from country to neighborhood, filtering by value range — all without a loading spinner. The engineering question was never 'can we build a map with data on it?' — it was 'how much can we responsibly hold in memory on a phone?'
State → Metro → County → ZIP — automatically switching resolution as the user zooms, rendered on self-hosted vector tiles. The right level of detail at the right zoom level, with no marker clustering.
State, metro and county data fetched once and cached locally with a daily refresh. ZIP-level data — too large to ever fully cache — streamed live and scoped to exactly what's on screen.
Color coding computed on-device from live data, so switching from 'Home Value' to 'Population Growth' is instant — no new map style to load, no server round-trip.
A Cube.js semantic layer powers both the map and a national leaderboard/ranking screen, plus downloadable PDF market reports — one data layer serving every surface.
A market-focused news feed, native in-app-purchase subscriptions, and a push notification system with multi-device support and a remote-triggered force-update safety net.
ZIP Codes on Mobile
Every U.S. ZIP code rendered simultaneously — with dozens of statistics each — on a device with a fraction of a server's memory.
Metrics, Zero Per-Metric Cost
A single rendering pipeline supports 90+ tracked metrics with zero additional infrastructure per metric — adding a data point is a data change, not a map change.
Cold Start
Tiered caching cut cold-start loading to three small, bounded datasets — the unbounded ZIP layer never blocks the app from being usable.