Project
Vulnerability Data Pipeline & Dashboard
Raw scanner exports in; MTTR, aging, and SLA-breach dashboards out.
- Problem
- Scanner consoles answer 'what is vulnerable' but not 'are we keeping up'. Leadership needs trend lines — mean time to remediate, backlog age, SLA breaches — and those live across exports nobody has time to reconcile by hand.
- Approach
- A reproducible pipeline: generate synthetic Nessus- and Invicti-style exports, normalize them into a single findings table, compute program metrics, and render a Streamlit dashboard with drill-down by severity, asset class, and age bucket.
- Result
- One command refreshes the whole view. The synthetic generator doubles as a portable test fixture for anyone building similar reporting.
- Python
- pandas
- Streamlit
- Plotly
- synthetic data generator
What it will show
- ETL that survives messy inputs: inconsistent column names, duplicate findings, mixed date formats, host records that disagree.
- Program metrics computed honestly — MTTR with and without still-open findings, aging cohorts, SLA-breach counts by policy.
- A dashboard built for a briefing, not a console: few numbers, clear trend, drill-down when asked.
Data sources
A synthetic-data generator produces scan exports that look real but describe nothing real. No client or employer data is involved at any stage.
Status
Planned. Spec first; public repo and write-up follow.