•
2 min read
Self-Serve Dashboard Platform

At IHS Markit, I architected the entire design and implemented its core components, moving IMSecurities from platform-defined dashboards to dashboards definable by the customer, team, or individual user.

  • Modeled each reporting dataset as a denormalized, pre-joined entity backed by its own Elasticsearch index — designed around 5 datasets of roughly 15-20 fields each, sized for an estimated 300k-3M rows per customer.
  • Built a query builder letting users pick a dataset, filter on its fields, and choose an aggregation function and column(s) to aggregate, with a translation layer parsing that query definition into Elasticsearch Query DSL.
  • Let users link queries to charts and compose charts into dashboards, with role-based access control granted at the whole-dashboard level.
  • Built a pull-based Logstash pipeline pulling data from the team’s transactional APIs into Elasticsearch to keep datasets current — Postgres was the underlying system of record, but Logstash never connected to it directly, only through those APIs.
  • Designed for the actual deployment model: each customer ran its own dedicated environment rather than shared multi-tenant SaaS, with a modest target of 20-50 concurrent users per customer.