Personal blog of Matt Coles — Principal Engineer at AWS, based in Melbourne. Live at coles.codes.
Notes on building with LLMs and agents, fine-tuning models at home, AWS architecture, and a homelab that's gotten gently out of hand.
- 🌐 Site — https://coles.codes
- 📰 RSS — https://coles.codes/index.xml
- 🤖 LLM-friendly map — https://coles.codes/llms.txt
- Hugo (Extended) — bespoke, themeless site: templates in
hugo/layouts/, styles inhugo/assets/css/. - AWS S3 + CloudFront, provisioned with AWS CDK (Python) in
cdk/. - Shipped by GitHub Actions over OIDC — no long-lived AWS keys.
- Comments via giscus (GitHub Discussions).
Needs Hugo Extended ≥ 0.118 (CI pins the exact version in .github/workflows/deploy.yml).
No submodules — a plain clone is enough.
git clone https://github.com/MattJColes/colescodes.git
cd colescodes/hugo
hugo server -D # http://localhost:1313Production build (what CI runs): hugo --minify --gc → output in hugo/public/.
A pinned Hugo binary for local verification lives at .tooling/hugo/hugo (gitignored).
cd hugo
hugo new posts/my-post.md # then set draft: falseAlways add a description: in the front matter — it feeds the meta description, social
cards, JSON-LD, and llms.txt. The writing voice + full SEO checklist live in
CLAUDE.md.
| Path | What |
|---|---|
hugo/content/ |
Posts (posts/) + single pages (about, projects, friends) |
hugo/layouts/ |
Bespoke templates + partials (incl. schema.html, robots.txt, index.llms.txt) |
hugo/assets/css/ |
NN-*.css files concatenated into one fingerprinted bundle |
hugo/static/ |
Favicons, og.png, fonts, images/ |
cdk/ |
CDK Python app (S3, CloudFront, ACM, Route 53, GitHub OIDC), us-east-1 |
.github/workflows/ |
deploy.yml (content), infra.yml (CDK) |
Push to main touching hugo/** → GitHub Actions builds Hugo, syncs to S3 (split
cache-control), and invalidates CloudFront. Infra changes go through infra.yml
(cdk diff on PRs, cdk deploy on main). See CLAUDE.md for context
flags, conventions, and the SEO/LLM setup.
Built with Hugo, AWS, and a fair bit of Claude Code.