Work

Seven projects, each with a repository and a write-up.

Two long-running labs for a fictional bank, three tools, and two graduate assessments. Every case study covers the objective, the architecture, what got built, the decisions behind it, and what is next.

7Case studies
2In active build
30Evidence screenshots
7Public repositories
Hybrid identity architecture diagram: network zones and authentication policies above Okta and Entra ID, with Active Directory on premises reached by the Okta AD Agent
Identity · Hybrid identity · Biira BankPhase 5 of 6

Enterprise IAM Lab: Hybrid Identity for a Regulated Bank

On-prem Active Directory with a tiered admin model, federated to Okta Workforce Identity and Microsoft Entra ID over SAML, OIDC and SWA, with network-aware conditional access and graduated MFA. Built to the regulatory drivers a real bank would have to satisfy.

Active DirectoryWindows Server 2025Okta Workforce IdentityMicrosoft Entra IDSAML 2.0OIDC
Read the case study →
Network architecture diagram: internet, pfSense, two switches and six VLAN security zones with firewall status
Infrastructure · Detection · Biira BankIn active build

Enterprise Security Homelab

A six-VLAN, default-deny network for a fictional regional bank: pfSense, managed switching, a Proxmox hypervisor on a trunk port, a Windows Server 2025 domain controller, Wazuh as the SIEM, and every firewall rule justified and mapped to a NIST control.

pfSense802.1Q VLANsProxmox VEWindows Server 2025WazuhAnsible
Read the case study →
Pipeline diagram: deploy misconfigured resources with Terraform, scan with Prowler and ScoutSuite, aggregate into one schema, visualise in Flask, remediate with dry-run
Cloud posture · AWS + AzureCompleted

Cloud Security Posture Dashboard

Terraform deploys deliberately misconfigured AWS and Azure resources, Prowler and ScoutSuite scan them, and a Flask dashboard normalises 500+ checks into one findings schema with remediation commands and CIS, NIST and PCI mapping.

TerraformProwlerScoutSuitePythonFlaskAWS
Read the case study →
Architecture diagram: three job APIs feeding a FastAPI service with PostgreSQL, a Jinja UI, and Prometheus and Grafana for monitoring
Identity · ToolingCompleted

IAM Job Scout

A FastAPI job board that pulls IAM roles from three job APIs, de-duplicates them with fuzzy matching, filters out senior titles, and ships with Prometheus metrics, a Grafana dashboard and Docker Compose deployment.

PythonFastAPIPostgreSQLDockerPrometheusGrafana
Read the case study →
Flow diagram: inventory every region, measure with CloudWatch, detect against thresholds, report in three formats
Cloud · ToolingWorking tool

AWS Cost Optimizer

A read-only Python CLI that scans every region of an AWS account for idle EC2 instances, unattached EBS volumes, outdated snapshots, unused Elastic IPs and idle RDS databases, using real CloudWatch utilisation rather than guesses, and reports the waste with a monthly and annual figure attached.

PythonBoto3CloudWatchEC2EBSRDS
Read the case study →
Audit lifecycle from planning through risk assessment, control testing and reporting to remediation, with the five findings ranked by severity
Assessment · IT auditAcademic · Completed

Collins Aerospace IT Audit: Post-Incident Assessment

A graduate IT-audit engagement on a simulated aerospace breach: COBIT-framed planning, NIST 800-30 risk assessment, CMMC Level 3 gap analysis, five headline findings and a costed remediation roadmap.

COBIT 2019NIST 800-30NIST 800-171CMMC 2.0ISO 27001
Read the case study →
Defense-in-depth layers (human, policy, technology) with the key findings and a three-phase rollout
Assessment · Security programAcademic · Completed

Cyberdyne Systems: Enterprise Security Assessment

A defense-in-depth program for a fictional 400-person manufacturer across two countries: 16 vulnerabilities, 13 technical controls, 11 policies, and a three-phase rollout that starts with the end-of-life fleet and identity.

NIST CSFNIST 800-171Active DirectorySIEMDefense in depth
Read the case study →

No projects in this category yet.

The repositories are public and the documentation is written so someone else could rebuild the lab.