System Designhard

Design frontend data visualization for a security dashboard

Design a frontend dashboard that visualizes vulnerability or attack-path data with charts, tables, filters, drilldowns, and performance constraints.

Asked at Tenable

#data visualization#dashboard#performance#security SaaS

Answer

Interview framing: For Tenable-style products, visualization is not decoration. It helps users prioritize security risk and make decisions from complex data.

Design approach:

  1. Clarify the user goal:
  • Are users finding critical vulnerabilities, understanding trends, exploring attack paths, or reporting status?
  1. Choose the right visualization:
  • Table for precise comparison and workflows.
  • Line/bar charts for trends and counts.
  • Graph visualization for relationships and attack paths.
  • Heatmaps for density or severity distribution.
  1. Data pipeline:
  • Fetch summarized data for overview.
  • Fetch details lazily on drilldown.
  • Keep filters encoded in URL for shareable state.
  • Debounce expensive filter/search actions.
  1. Performance:
  • Virtualize large tables.
  • Aggregate server-side when datasets are large.
  • Memoize expensive transformations.
  • Use Web Workers for heavy layout/graph calculations.
  • Avoid rendering thousands of SVG nodes if canvas/WebGL is more appropriate.
  1. UX:
  • Show loading, empty, and error states.
  • Make severity/risk color palettes accessible.
  • Add legends, tooltips, and clear units.
  • Preserve user context when filters change.
  1. Security/product concerns:
  • Avoid leaking sensitive asset names in logs.
  • Respect RBAC in every API response, not only hidden UI controls.
  • Make export/share flows permission-aware.

Good follow-up: "I would validate the dashboard with realistic data volume, because visualization choices that work for 100 nodes often fail at 50,000."

Source: Tenable frontend job description

Practise more System Design questions →