(CASE 02 · REZYSAVE)

Managing an IoT product, from 20M unclean rows to nine kinds of readers.

Building the RezySave enterprise IoT system.

The RezySave dashboard overview: alert trend chart and alerts by stage

(TL;DR)

SITUATION
High-level requests from executives for 9 personas, and 20M+ rows of unorganized and unstandardized data.
WHAT I DID
Worked as product manager to a 20+ person offshore team: standardizing data, building device naming and app user flows, and directing the app’s Figma designs.
RESULT
A working dashboard all 9 personas could read. 1,265 connected devices findable by their code across 11 properties and 229 buildings.

(THE ROLE)

I managed the product from the client side of a 13-hour time difference.

I came in as a data analyst and ended up managing the product: 20M rows nobody had standardized, a 20+ person offshore team, and nine kinds of readers who each needed a different answer from the same data. I called the delivery team at five and six in the morning, went through each page with their design manager, and told them what the system had to know. My job was to know what all nine kinds of readers needed and to say it before anything got built.

DECISIONStayed the client-side manager rather than the one drawing screens, so every screen answered a real reader, not somebody’s taste.

(THE NINE READERS)

  • PROPERTY MANAGERS
  • ADMINS
  • INSTALLERS
  • TENANTS
  • REGIONAL PROPERTY MANAGERS
  • OWNERS
  • INSURANCE
  • INVENTORY MANAGERS
  • INSTALL MANAGERS

(THE FLAW NOBODY ELSE CAUGHT)

Anyone could sign up with any role they wanted. The whole team missed it.

The approved Figma mockups never had a ‘pick a role’ step. Design and dev built the sign-up flow with one anyway: one link to every email, and anyone could claim any role, unchecked, straight up to regional manager. Nobody checked the build against the mockups; I caught it because my job spans design, development, and the client’s business, not just one of them. I drew the flow that closed the gap, sign-up links already resolved to a tenant and unit before they go out, to show the team what to build instead. No role to pick, nothing to approve.

DECISIONHeld QA alongside product management, and checked the build against the approved mockups rather than against itself.

The mockups never had ‘pick a role’; the built flow did. I caught the gap and drew the fix.

(THE NAMING, INVENTORY AND INSTALL SYSTEM)

Building an enterprise naming, inventory, and install system.

Every device carries a code that says exactly where it belongs, down to the property, the building, and the unit. The code tracks what exists, maps each device to its place, and plans the install in advance, so a crew arrives already knowing what goes where instead of scanning anything in the field.

DECISIONDesigned the naming scheme before the fleet outgrew anyone’s ability to track it by hand.

The device naming spec redrawn: the template naming-code rows, and the anatomy of the code 1001.18-1.UTNH as property, building, unit and device type

1,265 CONNECTED DEVICES ACROSS 11 PROPERTIES AND 229 BUILDINGS, COUNTED 2026-08-27

A naming code is only useful if it points at one list. Every property, building, unit and device sits in one master table, and every install and report checks against that, not somebody’s copy.

The property and device master table redrawn: eleven properties with their city and state, street addresses withheld
The property device install flow redrawn: CRM entry, rent roll, project plan and installer account, then device assigned, installer login, location, QR scan, install, and a device counted only once its data has sent
The inventory to property flow redrawn: two paths, one assigning a device by QR at install and one with its location set in advance

SCROLL THE DIAGRAM SIDEWAYS TO READ IT →

Planning it in advance only counts if it reaches the installer. By the time he opens the app, the unit and the code are already decided. And a device is not counted as installed until its data has actually sent, which is on the flow above because it is the part everybody wants to skip.

The mobile Add Device screen: install instructions for a fire, temp and humidity sensor, then its serial number, device location, a photo upload and the unit number
THE MOBILE ADD-DEVICE FLOW · SHIPPED PRODUCT · DESIGNED BY THE CONSULTANCY’S TEAM, MANAGED BY ME FROM THE CLIENT SIDE · DATA AS CAPTURED

(20M ROWS INTO A WORKING DASHBOARD)

20M rows of unclean data into a working product.

Getting from the one to the other meant sitting with the real data and standardizing it first: 120+ columns, no standard between them, and one measurement arriving in five different formats. What shipped is a dashboard all nine kinds of readers can use, each getting a different answer out of the same devices.

DECISIONSat with the real 20M-row data and standardized it before validating a single screen.

The RezySave dashboard overview: a fire-department alert banner across the top, an alert trend chart, and alerts by stage
THE OVERVIEW · SHIPPED PRODUCT · DESIGNED BY THE CONSULTANCY’S TEAM, MANAGED BY ME FROM THE CLIENT SIDE · DATA AS CAPTURED
The system view: every device type reporting how many units are online, offline and low on battery, beside the alerts and insights feed
THE SYSTEM VIEW · EVERY DEVICE TYPE, ONLINE, OFFLINE OR LOW BATTERY · SHIPPED PRODUCT · DESIGNED BY THE CONSULTANCY’S TEAM, MANAGED BY ME FROM THE CLIENT SIDE · DATA AS CAPTURED

(DIRECTING THE BUILD)

The direction went on the working documents themselves.

Rather than hand over a picture and hope, I annotated the property manager view panel by panel: the renames, the gauge bands, and what each section had to tell its reader. Behind it sat the rest of the direction: the data dictionary every sensor mapped into, the payload each alert had to carry, the mold and water rules, and the master table the whole system joined against.

DECISIONWrote the direction on the working documents themselves, so the team read each requirement next to the thing it applied to.

The property manager dashboard wireframe carrying my own direction notes to the delivery team: a panel rename, the insurance index gauge bands, and what each section has to tell its reader
THE PROPERTY MANAGER VIEW, MARKED UP IN MY OWN DIRECTION NOTES TO THE TEAM · ITS BODY COPY IS PLACEHOLDER TEXT
The device data mapping redrawn: eleven data types, each raw device field beside the one shape the platform reads it in
The alert rules redrawn: what each alarm payload has to carry, the mold growth thresholds for one temperature band, and the water cost benchmark per property