Cloud Resume Challenge
Tags: aws, fullstack
Published: 2023-09-20 01:12:27

3 weeks ago the most I had done in AWS was set up some Lightsail servers for gaming. I had always been interested in the cloud, I even got my AWS CCP a little less than a year before undertaking this challenge. I stumbled upon Forrest Brazeal and his resume challenge because I was considering taking a career in the cloud seriously and figured I should do some challenges to get a feel for whether I would enjoy it. And boy I found one. What I found was the most infuriating, aggravating, and painful IT challenge I ever tried my hands at. All that said it was also the most rewarding, educating, and satisfying experience I had since 2013 when I graduated from basic training for the US Army. I will discuss below a little about myself, and the challenge I undertook.

## **About me**

In 2013 I joined the US Army as an infantryman, which was a lifelong dream of mine. After 4 years I realized, although rewarding, it was not what I wanted for the rest of my life. However, along the way I learned determination and discipline, characteristics I relied heavily on during this challenge. After leaving the military I found a real passion for Information Technology, and after some training took a job on a help desk. After a year of that, I was asked to run the IT department for a small school where I set up a network from the ground up. I have been there for the last 2 years.

## **Frontend**

I initially built my frontend from scratch using HTML and CSS but found I didn't exactly have an eye for the aesthetic. I went looking for a template to work off of and found HTML5up. From there I had to adjust the template to make it my own. In order to do that I had a lot of HTML, CSS, and Javascript to learn. While I've done a bit of coding in the past, This was definitely the first hurdle to overcome. 

After writing the website I set up an S3 bucket and cloudfront to distribute the website. There were a few hang-ups, such as figuring out how to set up S3 for a static website, but this largely went smoothly. After that, I had to purchase a domain in Route53 and set up DNS records to point to the cloudfront URL. I used A records for that, and again this went smoothly. I had some prior experience creating DNS records from my job running the school. Lastly, I set up my HTTPS certificate, which took a few attempts, but ultimately went smoothly as well.

## **Backend**

The backend was where I found the most trouble. The Development world is fairly foreign to me, as I've spent most of my IT career in Systems and Networking. As much trouble as it was though, this is where I learned the most. I started by setting up a NoSQL database in DynamoDB. While I have some experience in Database administration, this was my first time building anything in NoSQL. After setting that up, I got started on my Lambda function. Mr. Brazeal recommended using Python for this, and being fairly inexperienced in coding (the only languages I know anything of note about are Java and C++) I went with that. This was the second major hurdle for me, as I was basically learning Python as I went. I think I re-wrote this code about 5 times trying to get it to get it to work, but ultimately found success. Next was to create an API Gateway and a Javascript code to interface with it. This was my 3rd major hurdle. I am very unfamiliar with API's beyond a tertiary understanding of what they are and what they do. I had never heard of CORS before, so when my Javascript kept failing to grab the data on the API, even though I could curl the website, I figured it was an issue with my code. It was only after re-writing my javascript and troubleshooting for about a week and a half, that I finally broke down and reached out to the wonderful people in the Challenge's discord server. I very quickly got multiple responses from people 100% ready and willing to help. I would likely still be stuck on this if not for them, and for that, I say thank you.

## **CI/CD and automation**
 
Finally, after two and a half weeks I felt I was in the home stretch. I set up Github actions without much issue, but Terraform was another beast entirely. Hurdle number 4. After half a week of non-stop reading documentation, watching YouTube videos, and using ChatGPT, which I had used to troubleshoot my code earlier, I finally had working Terraform code. When I did my first successful terraform apply, I felt like I had gone from doing stuff anyone with enough time could do, to some real tech wizardry. The feeling was amazing. Success!

## **Final thoughts**

This challenge really pushed me way beyond the comfortable little area of IT that I had been inhabiting for the past 2 years and challenged me to broaden my horizons and do something I never thought I would be able to just 3 weeks ago. If nothing else comes of this challenge, I have learned a lot, gained confidence, and tried something new. The next step for me, after a much-needed break, is to study for the AWS Certified Solutions Architect. Stay tuned for more!