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
