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
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:
- Clarify the user goal:
- Are users finding critical vulnerabilities, understanding trends, exploring attack paths, or reporting status?
- 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.
- 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.
- 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.
- 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.
- 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