A map of the work: what was built, how it was documented, and where to find it.


AWS Cost Management — right-sizing a personal estate

A billing audit that found $59/month accumulating in a personal AWS account that was supposed to cost nearly nothing — idle EIPs, orphaned snapshots, and test secrets nobody cleaned up. Reduced to $3.63/month.

Project write-up →

StageWhatPostStatus
5.1What $59/month looks like on a personal site — idle EIPs, orphaned snapshots, secret accumulationPost 1 — what $59/month looks likeComplete

Traffic Analytics — CloudFront logs and Athena

Server-side traffic analytics for tacedata.ca using AWS-native tooling — no JavaScript, no cookies, no third parties. Design proved sound; closed when the CloudFront Free pricing plan blocked all logging features.

Project write-up →

StageWhatPostStatus
4.1Free plan logging wall — CloudFront and WAF logging both gated behind the Pro tierPost 1 — what the Free plan doesn’t tell youClosed

Economic Indicators Dashboard

Eight Canadian economic indicators translated into plain-English mortgage rate signals. Tracks the indicators most relevant to the fixed vs. variable rate decision.

Launch Dashboard →

StageWhatPostStatus
2.6Threshold alerting — SNS email on signal crossingsPost 6 — threshold alertingComplete
2.5Historical storage — DynamoDB snapshots, extended sparklinesPost 5 — historical storageComplete
2.4Data source upgrades — replace ETF proxiesPost 4 — data source upgradesComplete
2.3Server-side data fetching — Lambda pipelinePost 3 — server-side data fetchingComplete
2.2Hugo integration — dashboard into the sitePost 2 — Hugo integrationComplete
2.1Document origin — what was built and whyPost 1 — what and whyComplete

Security Remediation — public repo cleanup

A post-launch security review uncovered AWS resource identifiers committed to a public repository. Full account of what was exposed, how it was found, and what it took to fix it — including a git-filter-repo history rewrite across 46 commits.

Project write-up →

StageWhatPostStatus
3.2Internet cache and the Wayback MachinePost 2 — internet cache and the wayback machineComplete
3.1Cleaning sensitive data out of git historyPost 1 — cleaning sensitive data out of git historyComplete

tacedata.ca — this site

Personal portfolio and professional development site. Hugo static site hosted on AWS S3 + CloudFront, deployed via GitHub Actions. Documented as a staged build from scratch.

Project write-up →

StageWhatPost
1.7Scheduled rebuild — publishing future-dated posts automaticallyScheduled publishing
1.6Site monitoring with AWS CloudWatchSite monitoring with aws cloudwatch
1.5Cutting over a websiteStage 5: cutting over a website
1.4Building the site itselfStage 4: building the site itself
1.3Deploying a static site on AWSStage 3: deploying a static site on aws
1.2Migrating email before touching DNSStage 2: migrating email before touching dns
1.1Choosing a static site generatorStage 1: choosing a static site generator