Principal Engineer
Corporate Interactive
I lead platform architecture across all five products and still write, review and debug the code that ships.
- Product unification: re-architected QuoteCloud, TravelDocs and ZeroRisk into monorepos spanning web, Android and iOS. In QuoteCloud, the web app, the native iOS app and the Zapier and Salesforce integrations all build against the same type and function packages.
- Sync engine: designed the approach for multi-user mode and concurrent editing. The same engine updates client-side libraries automatically and carries function calls between clients and the backend, so web and native apps call the same server functions instead of each keeping its own REST client.
- Channel parity: moved permission and state decisions to the server. QuoteCloud works out what a user can do with a document once, every client renders from that result, and the server still validates each change.
- Legacy migration: moved QuoteCloud customers off the Java platform one company at a time, with a cutover per company and a login handoff that carries users from the old app into the new one without a second sign-in.
- QuoteCloud: document and block-editor architecture, pricing and spreadsheet tools, embedded PDFs, session recovery and shared rendering across the editor, recipient viewer and PDF output. Integrations include Salesforce, Zapier and a two-way, idempotent Xero payment sync in which QuoteCloud stays the system of record for issued invoices.
- TravelDocs: itinerary services and native iOS and Android apps connected to Sabre and QuoteCloud, covering offline persistence, synchronisation, silent push, widgets, Live Activities and Apple Watch. I also replaced share links that exposed booking reference and surname with tokenised web handoff links.
- ZeroRisk: location and notification behaviour, SOS and check-in flows, tenant-aware permissions, operator maps and the newer web and Expo platform.
- Visual Editor: responsive page composition, editor interactions, content and asset tooling, caching, custom HTML isolation and the modern Next.js application.