From Zero to AWS Hero: My Experience Completing the Cloud Resume Challenge
Tags: cloud, aws, devops, python
Published: 2023-03-28 01:36:45

Hi, my name is Wesley Thompson and I currently work as a "Nuclear" Engineer at NAVSEA with a background in Electrical and Computer Engineering. The reason I put "Nuclear" in quotes is mainly because this position can operate in many different facets including as an Electrical, Project, Systems, and even a Network Engineer. Even with the wide range of work that I could perform on a day-to-day basis, I have never had the opportunity to work on a cloud project, outside of guided labs, until I stumbled upon the “Cloud Resume Challenge” created by [Forrest Brazeal](https://github.com/cloudresumechallenge/projects/blob/main/projects/aws/cloud-resume-challenge.md). The challenge seemed like the perfect opportunity for me to learn about cloud computing by building and deploying a modern web application on AWS in the most practical way possible. 

You can see the final result of my resume [here](https://wesjthompson.com) and the code can be checked in this [GitHub repository](https://github.com/wjthompson97/Cloud_Resume_Challenge.git).



![Diagram for Cloud Resume Challenge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iz9vgz4nr3r5f8qpm8sr.png)

#About The Challenge#

The Cloud Resume Challenge is a multi-step resume project that requires participants to build a website from the ground up, create a CI/CD pipeline, and automate infrastructure deployment using infrastructure-as-code tools like AWS SAM or Terraform. The challenge also requires participants to document their progress and share their work on social media platforms like LinkedIn. The goal is to help participants gain hands-on experience with cloud computing technologies and develop practical skills that are in demand in the industry.  

At first, I was overwhelmed by the scope of the challenge. I had never worked with AWS before and had limited experience with serverless web application development. However, I was determined to complete the challenge and learn as much as I could along the way. Luckily enough the challenge was broken up into 16 steps across 4 chunks (with **Step 1** being getting AWS certified and **Step 16** being creating a blog about your experience) and that gave me a good visual of each iteration of work that I needed to perform. I spent a lot of time reading AWS documentation and researching best practices for serverless web application development to make sure I had a firm grasp of the tasks prior to starting. I found the AWS documentation to be very comprehensive which really helped me out once ERROR codes started popping up.  
 
**Chunk 1 - Front End**
 
This chunk was made up of steps 2-6, which was the creation of the static page using HTML and CSS, hosting the website on Amazon S3, configuring the website to be accessed using HTTPS, and registering a domain name through a DNS service for the website. The steps were straight forward and just by using the documentation for each service involved I was able to get through it fairly easy. However, I originally decided to code the website from scratch but after seeing some of the other Cloud Resume Challenge websites I chose to make mine a little more distinct using some templates. This led me to the first major lesson learned. I decided to upload the code periodically as I would finish an update of a section which led me with 3 different versions of essentially the same code. When I went to check the website each browser I chose had a different version loaded. After some scrambling trying to figure out what I did wrong, I realized that the issue lied in not invalidating the cache in CloudFront.

**Chunk 2 - Back-End API**

This chunk was made up of steps 8-10, and 13, which was the creation of the database to store the number of visitors, using the API Gateway/ Lambda Functions to update the database, and storing all the code in a GitHub repository. I have a decent background with coding, so luckily enough I didn’t have too much issue with this part. I would say that the most difficult portion was making sure that I firm grasp of the API Gateway as this was the first time I had to use this service.

**Chunk 3 - Front-End/Back-End Integration**

This was the shortest chunk on paper as it was made up of steps 7 and 11, which was using JavaScript to communicate with the API Gateway to display the visitor counter and writing a Unit Test for the Lambda function. With that being said, I spent by far the most amount of time working through the issues in these steps than I did in all others throughout the challenge. I was able to write the code to communicate with the API Gateway relatively quick. The major issue that I had to learn from was setting up CORS. I was forced to spend hours trying to understand where the issue lied, changing the original lambda function, and eventually enabling CORS at the API endpoint to correct the error.  


**Chunk 4 - Automation / CI/CD**

This chunk was made up of steps 12, 14, and 15, which was the recreating of all the AWS services using Infrastructure as Code and using the CI/CD pipeline for both the front-end and back-end. The issue I had with these steps mainly had to do with the conceptualization of how these all worked together. Prior to going through this challenge, I had never had to put much thought into this aspect so took my time with going through the concepts.

#Summary#

Completing the Cloud Resume Challenge was as rewarding as the countless reviews said it would be. Being able to be so hands on with AWS allowed me to have a deeper knowledge base of serverless web application development, infrastructure as code, and how multiple AWS services can be architected together. This challenge has also allowed me to gain confidence in my ability to learn new technologies and tackle complex projects. 

If you're interested in learning about cloud computing and gaining practical skills that are in high demand in the industry, I highly recommend taking the Cloud Resume Challenge. It's a fun, challenging, and rewarding experience that will help you grow both personally and professionally.