CephaloTech

This website and portfolio. Also a long-running infrastructure playground.

Overview

I have a lot of hobbies. They needed more organization. This place brings order to the chaos.

It started as a hand-clicked S3 static site. It is now fully code-managed and hardened — which turned into a portfolio piece in its own right.

Current Status

If you can read this, it's up and running — served from CloudFront over a private, OAC-locked S3 origin.

What it's been through

  • Angular 8 → 22; npm → pnpm; new lint / format / test tooling (Vitest, Playwright, Lighthouse CI)
  • Console-clicked AWS → Terraform, reconciled against the pre-existing live state
  • CodePipeline / CodeBuild → GitHub Actions with OIDC — no static AWS credentials anywhere
  • Public-read S3 website → private us-east-1 bucket behind CloudFront Origin Access Control
  • TLS 1.1 → a TLS 1.2 floor, plus HSTS / CSP / X-Frame-Options / X-Content-Type-Options
  • The bare apex cephalotech.com brought onto HTTPS via CloudFront

Lessons Learned

  • Reconciling Terraform against infrastructure you didn't build is its own skill.
  • Least-privilege IAM is a game of adding one denied permission at a time.
  • A masked failure — 403 → index.html → 200 — will happily hide a completely broken origin.

Current Objectives

  • Keep the content current with what I'm actually working on.
  • Add outbound links to GitHub and LinkedIn (finally).

Tools

  • Angular 22 / TypeScript
  • Terraform
  • AWS — CloudFront (OAC), S3, Route 53, ACM, IAM / GitHub OIDC
  • GitHub Actions
  • pnpm, Vitest, Playwright, Lighthouse CI