Building an AWS-Hosted Cloud Resume
Published: 2022-09-06 14:03:39

## Overview: 

Some background on me, I'm a Systems Engineer with around 10 years in the tech field working in multiple roles. I've been spending some time over the last few years gathering new skills, mainly from the Cloud/DevOps realm. While progress was slow and steady, I wanted a project that would accelerate the pace of my journey -- something that would take my existing skills and force me into some areas of infrastructure that I'm somewhat unfamiliar with. 

**Enter the [Cloud Resume Challenge.](https://cloudresumechallenge.dev/docs/the-challenge/aws/)**

To save you a click, the gist is simple: _create a static resume website_ - something that you could probably build on a hosted provider's web editor in ten minutes. 

**But,** we're using AWS for the whole thing, coding most of the back-end by hand, and adding some quality-of-life improvements. 

----

### The Stack:

Here's a rundown of the whole thing:

- A simple, static resume written in **HTML/CSS/Js** using **Bootstrap**, hosted as an S3 static website.

- The S3 website is being served by **AWS CloudFront**, secured with an SSL certificate from **Amazon Certificate Manager**, and DNS being handled in **Route 53**. 

- A visitor counter on the site that uses JavaScript to contact an **API Gateway**, which interacts with a few **Lambda Functions** using Python (boto3), and reads/writes the visitor data in **DynamoDB**. 

- **Infrastructure as Code:** the entire infrastructure is written as a **CloudFormation SAM** template. (this was by far my favorite part!)

- **CI/CD:** The codebase is version-controlled in GitHub, and deployed using Github Actions, implementing a few unit tests in the pipeline before updating the AWS Infrastructure and website contents. 

----


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iwaodvykn0ksbwhelq8q.png)

----

### Thoughts:

I learned a lot about my skill-set during this challenge. Certain components of this project reaffirmed some of my existing strengths, but also forced me out of my comfort zone and showcased a few areas where I needed to study up on. 

Things like CI/CD, IaC, DNS, Python, and Databases were already very familiar to me, so I finished those sections pretty quickly. 

I'm not a web developer, so the front-end portion required significantly more research on my end. I started with a resume template and made edits in the HTML and CSS to better fit my resume layout, and then added the simple JavaScript later. I'm still not a web developer, but this project made me feel more confident in areas like this that may be outside of my comfort zone. 

Most importantly, **I had fun.**

It's very easy to forget why you got into this field in the first place. There were a few nights during this project where I didn't really know where to go next, since the "next step" wasn't always clear. After some whiteboard flowcharts, a few cups of coffee, and a little creativity, my tests were all passing and the pipeline completed successfully, deploying my application for the first time. 

I plan to roadmap new features and additions to keep both my resume and my skills sharp. While this was a great start, the work has only begun and I now have a foundation on which I can build. 

View a live copy @ [keithkain.com](https://keithkain.com) -- thanks for stopping by!