Cloud Resume Challenge: Head in the Cloud
Tags: aws, devops, noob
Published: 2020-09-12 00:34:15

## The story part

<iframe src="https://giphy.com/embed/ycDkMrYGnrolJE6DdS" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/andrewwk-music-video-andrew-w-k-ycDkMrYGnrolJE6DdS">via GIPHY</a></p>

At the end of 2019 I finished up my CCNA certification that was interrupted by a year long stint of teaching English overseas in South Korea. With the certification finished I was feeling good but was wondering where to put my efforts to further my career in IT. AWS certifications were mentioned a few times on the Reddit r/sysadmin board and so I started looking into them.

In February 2020 I began casually learning AWS with the help of Stephane Maarek's Udemy course. I followed along with the videos and setup the basics that he had in each course (create an IAM user, create a DymamoDB table, etc.). Fast forward to April and my wife and I welcomed our first child to our family, and AWS took a back seat.

I returned to work a few weeks later and continued my casual study but this time with a goal in mind: to get AWS certified before my paternity leave began in July. I finished the Udemy course and purchased Jon Bonso's practice tests to gauge my knowledge and study my weak points. I passed my AWS Solutions Architect - Associate exam at the end of June and began my paternity leave the next week.

I saw the [Cloud Resume Challenge](https://cloudresumechallenge.dev/) posted on Reddit and figured I'd put my freshly minted certificate to use.

## The challenge part

During my paternity leave I spent 30 minutes here and there while my daughter took naps to work through the challenge. It took longer than expected but I learned a lot!

Step one was to have an AWS certification, lucky for me, step one done. The next part was having your resume in HTML format and styled with CSS. Creating the resume in HTML was easy enough (after a quick refresher) but a web designer I am not. My CSS was *very* web 1.0, maybe even less than that. I'm talking using headers and a background color. Further into the challenge, I joined the Discord channel and saw other challengers using pre-made resume templates and did the same. My resume webpage was now looking much nicer.

I created and uploaded my site to an S3 bucket and secured it using CloudFront.

#### The code part

<iframe src="https://giphy.com/embed/908fS3eQFUodG" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/week-high-quality-908fS3eQFUodG">via GIPHY</a></p>

Next up was some Javascript. I spent a lot of time going through the Code Academy Javascript course as linked on the Challenge's website which was a good refresher for the one Java class I had back in college. Sadly, I wasn't able to use this Javascripting right away as I needed to setup a lot more on the backend!

Creating the API and Lambda function for my visitor counter really had me hung up for a while. I spent a lot of time learning about Python and making calls through the CLI to get my DynamoDB to spit back how many people had visited my website. Once this was all working, I used the previously gained Javascript knowledge to add the script to my website and finally had everything working together.

#### The Infrastructure as Code part

So far ~90% of the challenge had been new to me and when I got down to the IAC portion of the challenge that didn't change. I started opening new tabs that were linked on the Challenge site about Git, IAC, SAM, CI/CD, and found the next level of "I have no idea what I'm doing."

Taking a step back, I worked through the SAM portion of the back end. Using the handy [tutorial](https://blog.heyitschris.com/posts/get-your-foot-in-the-door-with-sam/) from Chris Nagy I was able to get some infrastructure deployed quickly and easily. Using this tutorial as a base, I built out what I would need to deploy, my DynamoDB table, my Lambda function, and my API.

Next I signed up for a GitHub account and created two repositories, one for the back end stuff and one for the front end stuff. I uploaded the required files into their designated repositories and then worked through figuring out GitHub actions. After more trial and error, I had my front end repository syncing with an S3 bucket and my back end repo deploying my SAM template and creating my infrastructure and best of all it was working!

#### Deleting it all

Now for the part I wasn't looking forward to. Up until now, I had created everything by hand and spent hours getting it all to work properly. To say I was nervous about deleting everything is an understatement but I was confident in my SAM deployment with my test runs. Deleting everything and having my GitHub actions rebuild it all within minutes was amazing and I am definitely excited to delve deeper into SAM after seeing how powerful it is.

#### Last but not least

At times I wasn't sure I was going to ever finish this challenge. Between all the new things I was learning and only being able to spend about 30 minutes at a time at the computer the end seemed so far away. This is why I saved buying my domain for last. I was happy when I finally bought my domain using Amazon's Route 53 and attached it to my CloudFront distribution to serve up my website (another learning moment).

#### Beyond

Taking this challenge was full of ups and downs but I'm glad I have it under my belt. This challenge definitely showed me how much of a skill gap there is between someone who can pass the certification exam and who can actually use the tools to build something. I know I have just scratched the surface with AWS and all the other coding languages used in this challenge but I am motivated to learn more.

Oh, yeah, if you want to see what came out of all of this feel free to head [here](https://www.achiantello.com) to take a look.

A special thanks to all the helpful folks in the Challenge Discord for being patient and answering all my questions!