Flagship project
KhaleejKeys
A live real-estate data platform I built and run myself. It makes the Dubai Land Department’s public record of completed property sales searchable and useful, down to an individual community or building.
What sets it apart from the usual property portals is simple: it shows what places actually sold for, taken straight from the government registry, instead of current asking prices.
- Ubuntu + Docker Compose
- Node.js / Express
- PostgreSQL + PostGIS
- Nginx + Cloudflare edge
- In-memory caching
- Chrome extension (Manifest V3)
The KhaleejKeys pipeline — government registry exports to a sub-second searchable product.
What it does
The platform holds roughly 411,000 cleaned official transactions, self-hosted on Ubuntu with Docker Compose, a Node.js and Express backend, PostgreSQL with PostGIS, and an Nginx and Cloudflare edge. On top of that sits the full product: search and deal analysis, market-trend dashboards, community pages, mortgage and yield calculators, branded PDF reports, a secured admin panel, plus SEO pages and analytics.
A companion Chrome extension overlays a live investment-feasibility calculator onto third-party listing sites, so the numbers travel with you while you browse.
The data work
Behind it is an ETL pipeline that turns 7.2 GB of government exports, about 10 million raw rows, into roughly 1.7 million unique de-duplicated transactions, then filters those down to the ~411,000 in scope for the product: cash and mortgage sales only, categorised by building type and location. A mapping layer reconciles the registry’s inconsistent cadastral zones onto real community names. An in-memory caching layer keeps search and analytics under a second across the whole dataset, and lets me refresh the data in production without taking it down.
Running it properly
It runs as a real service, not a demo: a staging environment that mirrors production, deployments gated behind backups, and automated nightly off-site database backups with tested restores. That backup regime came out of a genuine incident, and it is now part of how the platform is operated rather than an afterthought.
Built independently, using my infrastructure background and AI-assisted coding tools. The architecture, the data engineering and the operations are all mine.