Geoffrey Gilchrist

Senior cloud infrastructure engineer with 15+ years across AWS, Azure and hybrid environments. Read my resume, or see the proof below: this page is itself the portfolio piece, and every layer was provisioned with Terraform and shipped by a GitHub Actions pipeline.

What this demonstrates

Infrastructure as Code

Terraform for the VPC, load balancer, ECS, IAM, budgets and even the GitHub repository.

Keyless CI/CD

GitHub Actions assumes AWS roles through OIDC. No access keys exist anywhere.

Least privilege

Read-only plan role for pull requests; a scoped deploy role gated by a protected environment.

Cost engineering

Fargate Spot, no NAT gateway, budgets and anomaly alerts, and a stack torn down nightly.

How a change reaches this page

  1. Pull request runs tests, lint, security scans and terraform plan.
  2. Merge to main builds an immutable image tagged with the commit SHA and pushes it to ECR.
  3. The production environment job applies Terraform with the new image tag.
  4. ECS rolls out the task behind the ALB; the circuit breaker rolls back on failed health checks.

Served by

Commit
0c317edd7313baca30407f2e71a1a98bfd405bca
Version
0.1.0
Built
2026-10-13T20:45:40Z
Platform
ECS FARGATE
Task
64ba2c44830d
Task definition
cloud-portfolio:3
Availability zone
us-west-2a