← All work
PropertyDealGenieLead Software EngineerJun 2020 – Jun 2023

Real-time map clustering under 100 ms

Built a high-performance map clustering service for a UK property investment platform, rendering a country-wide dataset at any zoom level in under 100 ms.

Context

PropertyDealGenie helps UK investors evaluate buy-to-let opportunities. The core experience is an interactive map covering the entire country, where investors filter by yield, area, and property type — and expect the map to feel as fluid as a consumer mapping app.

The problem

A naive backend that returned every matching property choked the browser at low zoom levels. A naive client-side clustering library choked the JavaScript thread. The product needed server-side clustering that was correct and fast at any zoom level, on any filter combination.

Approach

  • Designed a Node.js clustering service that produced cluster results per filter combination and served only the slice each viewport needed.
  • Used spatial indexing so unchanged regions of the map did not pay the cost of recomputation.
  • Shaped the response so that the frontend only ever pulled the deltas required for the current viewport and zoom.
  • Built a load-test harness so any regression surfaced before it reached the UI.

Outcomes

Render time at any zoom
<100 ms
Microservices delivered as part of the platform
~25

Stack

Node.jsTypeScriptPostgreSQLGeospatial indexing