AWS Cloud Resume Challenge: My First Project
Tags: aws, cloud, serverless, resume
Published: 2024-01-01 07:27:54

I came upon the [Cloud Resume Challenge](https://cloudresumechallenge.dev/) by Forrest Brazeal when I was trying to research projects to do to showcase some skills picked up from acquiring the AWS SAA certification. And honestly, this challenge/project was perfect for me. I first studied for cloud certs by going through Coursera courses. While these courses are great, I knew the hands on labs provided were not going to give me the level of proficiency I desire. 

The challenge can be done across multiple cloud providers. I ended up going with AWS to match the new cert. The steps include:

-**Become Certified:** This was already on my agenda like I said.  I primarily used Coursera, ACloudGuru, TutorialDojo practice exams, and lots and lots of YouTube.
-**HTML & CSS:** I didn't want to waste too much time trying to make this perfect just yet because although its the face of the project, it's the not the focus of the challenge. I believe I just googled "portfolio website template", found one that kind of did the job, and did some moderate tweaking. Hopefully I come back and make it look better.
-**S3 Bucket:** S3 is used to store all of the website files and is perfect for accessibility and scalability. This step was probably the easiest.
-**HTTPS & DNS:** In order for my S3 bucket to be more secure and use HTTPs, I had to route traffic through Amazon CloudFront first. I additionally bought my very own domain like a big boy! I doubt I am  the only one that instantly thought of 5 better names after it was too late but it is still better than CloudFront's URL. Here is where I also used AWS Certificate Manager (ACM) for the SSL certificate used by the CF distro.
-**JavaScript Visitor Counter:** I was familiar with JS enough to put this together but not setting up CORS was an issue for a hot minute.
-**DynamoDB & API & Lambda:** I used Amazon's DynamoDB for storing the visitor count data. Created an API so my JavaScript code can communicate with the db. Lambda, triggered by my API, reads from the DynamoDB table and updates it as well. I had to play with the Python a bit for my Lambda function to properly work. 
-**Infrastructure as Code:** Cloud engineers aren't supposed to be clicking around in consoles wasting company time all day. Instead, they define all their resources in a single file that enables repeatable and consistent deployments... This was terrifying for me. Before I even attempted it, I thought IaC was too difficult and something that I wasn't supposed to be messing with yet. Nonetheless, the challenge continued. I went back and forth between AWS SAM and TerraForm and ultimately decided SAM was the better foot in the door. After loads of mistakes and problem-solving, I got my backend up and running with a functioning YAML file and minimal aws-management-console clicking. 
-**Source Control & CI/CD:** Separate GitHub repos for frontend and backend enable better organization and version control. Continuous integration and deployment are achieved via GitHub actions and help automate testing and deployment for any changes.

This challenge pushed me way out of my comfort zone and gave me a lot of confidence as I transition from military to the "cloud".

Check out my [resume](https://resume.ne-heath.com) and add another site view!

Connect with me on [LinkedIn](https://www.linkedin.com/in/neheath/)

Peak through my GitHub [repos](https://github.com/n-e-heath) if youre sad and want to feel better about yourself.