On 20 May 2025, I passed the AWS Certified Cloud Practitioner (CLF-C02) exam, my first formal cloud certification.
I was pleased to pass. I also wanted to build something I could point to afterwards.
The exam gave some structure to knowledge I had accumulated less formally over more than 12 years in technical roles. AWS was not new territory: I already worked with systems built around DynamoDB, S3, CloudWatch and Lambda. Those services had been in place before I arrived, but supporting them meant learning how data moved through the architecture, why functions were invoked and where to look when the expected flow broke.
I had also migrated a WordPress Multisite installation to AWS and administered a collection of EC2 instances, balancing reliability against the recurring reminder that idle infrastructure still sends invoices.
That experience taught me how to operate and troubleshoot existing systems. What I had not yet done was own a cloud project from beginning to end: design it, deploy it, secure it, automate it and then diagnose whatever survived the planning stage.
From services to a system
That gap is what made the AWS Cloud Resume Challenge interesting.
The project goes well beyond uploading a résumé to a bucket. It brings together a static frontend served through S3 and CloudFront, DNS and TLS, a JavaScript visitor counter, an API backed by Lambda and DynamoDB, automated tests, Infrastructure as Code and CI/CD through GitHub Actions.
I recognised the individual services. Connecting them would mean working out permissions and deployment order, then finding the assumptions I'd missed when a request failed between services.
That was the work I wanted to practise after the exam.
Turning knowledge into evidence
My next objective is a working, publicly accessible system with its infrastructure and deployment process captured in code.
I'll use this blog to record what I build and what goes wrong, including the design choices and mistakes that lead me to revisit a decision. The same applies to the homelab and whatever else fits into the category of can I build this properly around a full-time job?