Liqua
Overview
Liqua is a cloud-native SaaS platform for smart pool management, handling IoT telemetry from pool hardware, membership billing, and financial reconciliation for hospitality and leisure operators.
The Problem
The legacy codebase had no component reuse strategy — every page duplicated UI logic, leading to inconsistencies and slow feature delivery. Financial workflows relied on manual exports to reconcile with Xero and MYOB. IoT data from pool sensors was stored in a SQL database that couldn't handle time-series write volumes at scale.
Approach
Redesigned the frontend from class-based Vue 2 components to a composables-first Vue 3 architecture. Built 40+ reusable components covering forms, data tables, charts, and sensor status indicators. Pinia stores replaced Vuex with typed, composable state slices that colocated data and logic.
Led the migration of three years of IoT sensor data from PostgreSQL to Firestore via GCP Cloud Run functions. Designed a collection structure optimised for time-series queries with subcollection-per-device sharding, eliminating the write bottleneck that had been causing data loss during peak hours.
Built a tRPC-based integration layer connecting Liqua's billing engine to Xero (accounting), MYOB (payroll), LIGHTSPEED (POS), and Twilio (SMS notifications). Webhooks replaced polling, reducing reconciliation lag from 24 hours to near real-time.