Cybersecurity Project Manager & GRC Leader
PMP®-certified · Risk · Governance · Compliance · AI Governance
GRC programs built for real workflows — policies, risk registers, SOAs, and evidence packs audit-ready from day one.
FAIR-based modelling and KPI frameworks translating security risk into board-ready business language — not heat maps.
ISO 42001-aligned AI risk frameworks for enterprise deployments — model security, regulatory mapping, ethical controls.
ICS 100–300 field-certified with MSF and Federal Ministry of Health deployments. BCP and ERP built for real incidents.
A fully operational GRC command centre. Risk Register with FAIR quantification, 6 framework assessments (ISO 27001, NIST CSF, SOC 2, GDPR, CIS, HIPAA), Evidence repository, Statement of Applicability, Incident tracking, Business Continuity BIA, KPI & ROI calculator, and a Reporting Hub generating board-ready PDF exports.
Launch Platform →Guided missions and enterprise-scale practice projects inside the live platform. Complete full projects in isolated workspaces with JSON export and PDF completion reports.
Open Lab →Response plans and BCP frameworks for critical infrastructure — deployed at H2Safety Services with ICS 100–300 field certification.
View BCP →Risk framework for enterprise AI deployments — model security, regulatory mapping, and governance controls aligned to ISO 42001.
Enquire →Centralised toolkit for regulatory compliance audits — evidence collection, control testing, and audit-ready reporting across frameworks.
Open Toolkit →The GRC Platform is a fully operational enterprise tool — not a mock-up. Every module below is interactive, data-driven, and framework-aligned. Click through before you assume it's a simple portfolio piece.
14 pre-loaded risks with FAIR quantification, likelihood × impact scoring, treatment decisions, justifications, owner assignment, and remediation due dates. Fully editable.
Live Chart.js risk matrix, trend graphs, ROSI calculator, MTTD/MTTR tracking, and board-ready KPI metrics. All calculated dynamically from your register data.
Full gap assessments for ISO 27001, NIST CSF, SOC 2, GDPR, CIS Controls, and HIPAA — each with control-by-control scoring, notes, and exportable PDF reports.
Implemented, in-progress, and planned controls with framework references, effectiveness ratings, test dates, owner assignment, and linked risk mapping.
Evidence repository linked to controls, asset inventory with classification and criticality ratings, and a statement of applicability for ISO 27001 Annex A.
10 guided missions and 6 enterprise-scale practice projects — each in an isolated workspace with progress tracking, JSON export, and PDF completion report generation.
Deployed on GitHub Pages with HTTPS enforced. No server-side runtime means zero server-side vulnerabilities — no SQL injection, no RCE, no auth bypass at the infrastructure layer.
A strict CSP meta-tag is enforced on every page, restricting script execution to self and trusted CDNs only. Inline styles are scoped; connect-src is locked to 'none' on the portfolio page.
All external scripts (Chart.js) are loaded from cdnjs with Subresource Integrity (SRI) hashes, ensuring tampered CDN files are blocked by the browser before execution.
All user-supplied data is HTML-encoded via a purpose-built esc() sanitizer before any DOM insertion. URL inputs are validated to block javascript: and data: URI injection.
The GRC Platform stores all data in browser localStorage only — scoped entirely to the user's own session. Exports are rate-limited (5/min) and audit-logged. Internal platform datasets are never included in user exports.
Repository is configured for secret scanning (GitHub Advanced Security). All commits are reviewed for accidental credential exposure. Security headers, responsible disclosure policy (security.txt), and clickjacking prevention (X-Frame-Options: DENY) are implemented.
Methodology: STRIDE (Microsoft SDL) · Assets in scope: portfolio source code, GitHub repository, CDN dependencies, client browser session · Review date: March 2026
Portfolio security controls mapped to NIST Cybersecurity Framework and ISO/IEC 27001:2022 Annex A. Methodology aligns with NIST SP 800-30.
| Control | NIST CSF Ref | ISO 27001 Ref | Implementation | Evidence | Status |
|---|---|---|---|---|---|
HTTPS Enforcement |
PR.DS-02 | A.8.24 | GitHub Pages HTTPS enforced + JS redirect for HTTP→HTTPS | Browser padlock · HSTS header | Implemented |
XSS Prevention |
PR.DS-02 | A.8.28 | HTML encoding via esc() · URL validation via escUrl() · CSP script-src | Source code review · CSP meta tag | Implemented |
Clickjacking Prevention |
PR.AC-04 | A.8.28 | X-Frame-Options: DENY · CSP frame-ancestors: none | HTML meta tags · CSP header | Implemented |
Dependency Integrity |
ID.SC-04 | A.12.6 | SRI sha512 hash on Chart.js CDN · Version pinned to 4.4.4 | integrity= attribute in source | Implemented |
Content Security Policy |
PR.AC-04 | A.8.28 | CSP Level 3 · script-src, style-src, connect-src: none, base-uri, form-action | CSP meta tag · DevTools verification | Implemented |
Secure External Links |
PR.AC-04 | A.8.28 | All target=_blank links include rel="noopener noreferrer" | Source code audit · tab-nabbing test | Implemented |
Secret Scanning |
ID.SC-04 | A.12.6 | GitHub Advanced Security secret scanning enabled on repository | GitHub Security tab · gitleaks recommended | Partial |
Responsible Disclosure |
RS.CO-01 | A.6.8 | RFC 9116 security.txt published at /.well-known/security.txt | security.txt file · LinkedIn contact | Implemented |
Export Rate Limiting |
PR.AC-04 | A.8.20 | 5 exports per 60s enforced client-side · Excess blocked with user notice · localStorage-scoped; bypassable via DevTools — acceptable given no server-side attack surface | Source code · checkExportRateLimit() | Implemented (client-scoped) |
Audit Logging |
DE.CM-03 | A.8.15 | All data export events timestamped and stored in grc_export_log · localStorage-scoped; bypassable via DevTools — accepted limitation of static client-only architecture | localStorage audit trail · export functions | Implemented (client-scoped) |
Repository-level and pipeline security controls in effect for this portfolio.
No backend = no access control layer to break. All data is user-scoped to localStorage.
HTTPS enforced on all pages. No sensitive data transmitted or stored server-side.
All user input is HTML-encoded via esc(). URL inputs validated to block protocol injection.
Threat-modelled as a static portfolio — minimal attack surface by architecture. Demo banner prevents misrepresentation of capabilities.
CSP, X-Frame-Options, X-Content-Type-Options, and Referrer-Policy headers applied. HTTPS enforced.
Chart.js pinned to latest stable version with SRI hash. No npm runtime dependencies.
No authentication system = no session tokens to hijack. Portfolio is intentionally public-read-only.
SRI hashes on all CDN scripts. GitHub secret scanning enabled. No CI/CD pipelines with unverified dependencies.
Client-side export audit log maintained. All data export events are timestamped and stored in localStorage.
No server-side requests possible — static hosting eliminates SSRF attack surface entirely.
Looking to stand up a GRC function, strengthen a security program, or bring structured delivery to a compliance initiative? I'd like to hear about the challenge.
Explore the GRC Platform →