Public repository

terraform-infra

A production multi-account AWS estate in Terraform, split across management, security and workload accounts. Service Control Policies with root-account protection, Transit Gateway hub-and-spoke networking, and CloudTrail, GuardDuty, Config and VPC Flow Logs all normalised into Security Lake in OCSF 1.1.0 with a 365-day retention. Detections run as OpenSearch monitors rather than EventBridge rules, so alerts can be query-based, thresholded and correlated the way a SOC actually works — with runbooks and MITRE ATT&CK mapping committed alongside them.

  • Terraform
  • AWS Organizations
  • SCPs
  • Security Lake (OCSF)
  • OpenSearch
  • GuardDuty
  • Transit Gateway
  • EKS
Open repository

Public repository

observability-zero-to-hero

An end-to-end observability platform for containerised microservices on Amazon EKS, bringing metrics, logs, traces, dashboards and alerting into one environment. Prometheus and Grafana cover monitoring, Fluent Bit routes Kubernetes logs into Elasticsearch and Kibana, and OpenTelemetry sends custom Go and Node.js telemetry to Prometheus and Jaeger—with ServiceMonitors, PromQL alerts and load-generation scripts included for validation.

  • Amazon EKS
  • Kubernetes
  • OpenTelemetry
  • Prometheus
  • Grafana
  • Alertmanager
  • Jaeger
  • EFK
Open repository

Public repository

end-to-end-devops-on-aws

An end-to-end AWS delivery build for a containerised Node.js expense API. Layered Terraform provisions a segmented VPC, EKS on private subnets, MySQL RDS in database subnets, ACM, Route 53, an Application Load Balancer and immutable scan-on-push ECR repositories. Helm defines replica and HPA control, while Jenkins, SonarQube and Nexus cover the build, quality gate and artefact flow.

  • AWS
  • Terraform
  • EKS
  • RDS
  • ALB
  • ECR
  • Helm
  • Jenkins
  • SonarQube
  • Nexus
Open repository

Public repository

gitops-apps

The deployment authority: one repository that is the single source of truth for staging and production, reconciled by ArgoCD through ApplicationSets and Helm. Releases are immutable artefacts tagged with the commit SHA, and a single workflow — gitops-commit.yml — is the only thing permitted to write manifests, which is what makes a rollback a Git revert rather than an incident.

  • ArgoCD
  • Helm
  • ApplicationSets
  • GitHub Actions
  • Kubernetes
Open repository

Public repository

actions-templates

Reusable CI/CD workflows every other repository calls into, so the security floor is defined once. OIDC to AWS with no static credentials, GitHub App tokens instead of PATs, and a scanning pipeline that blocks: TruffleHog for verified secrets, CodeQL and Semgrep for SAST, Trivy failing on HIGH and CRITICAL, and OWASP ZAP for a DAST baseline.

  • GitHub Actions
  • OIDC
  • Trivy
  • CodeQL
  • Semgrep
  • TruffleHog
  • OWASP ZAP
Open repository

Public repository

terraform-aws-vpc

Reusable VPC module — the networking foundation the platform repos build on.

  • Terraform
  • AWS VPC
Open repository

Public repository

terraform-aws-securitygroups

Security group module, separated from the VPC so rules can change without touching the network.

  • Terraform
  • AWS
Open repository

Public repository

aks-cluster-with-terraform

Azure Kubernetes Service provisioned in Terraform — the same patterns as the AWS work, on a second cloud.

  • Terraform
  • Azure
  • AKS
Open repository

Public repository

blue-green-bankapp-deployment

Blue-green release of a banking application, with the cutover and rollback path written down.

  • Kubernetes
  • Blue-green
Open repository

Public repository

terraform-jenkins

Jenkins provisioned as code rather than clicked together — the delivery tier of the platform work.

  • Terraform
  • Jenkins
Open repository