Cloud Resume Challenge
Tags: aws, python, jenkins
Published: 2021-05-20 01:50:41

# A little bit about myself

I'm fairly new to the mega-sector of industry that is Information Technology, having only been in IT for about 3 years(I was doing CAD drafting for various contractors before). Information Technology fascinates me to the utmost extent and I'm constantly amazed about how it's transformed society into what we know today. 

It used to be that when someone made a science-fiction film, they would demonstrate how advanced the fictional society was by showing their video-calling capabilities. You'd have the main character talking with someone else while driving the plot forward, and it was supposed to be *cool*.

Nowadays, video-calls are a mundane facet of life, and everyone takes them for granted. I want to be a part of making sci-fi mundane. After I was largely complete with my Bachelor's in Information Technology, I spent a year as a help-desk technician/application analyst before moving onto Systems Engineering where I've been working in the Parking Solutions space for a couple years now.

Parking is one of the last industries to get automated, and we're seeing a large-scale transformation of the industry to a more fully-automated approach. 

I help make the dream of parking garages operating autonomously a reality.

# Why I took the challenge

Working in the parking industry allows you to be exposed to a wide variety of technologies along with sharpening your customer service skills. I wanted to take this further, so I obtained my AWS Solutions Architect Associate Certification, and I got to work on doing real-world projects.

# The challenge itself

So, I got into doing the cloud resume challenge and it's fairly straightforward. You build a website from scratch that has a visitor counter. But there's a catch, you have to do it the cloud friendly way. Rather than uploading everything by hand, the challenge expects you to be able to build out a CI/CD server that'll do it for you every time you commit a change to your git repository.
[You can check out more about the challenge here.](https://cloudresumechallenge.dev/)

# A little bit about the code I wrote

Since I'm a Systems Engineer and not a Web Developer, I knew nothing of CSS, Javascript or HTML. I had to for this challenge. After spending some time on Sololearn, I went around to various websites and got my design down. First spending time on the HTML, then making it neat via CSS, then finally adding Javascript to interact with my backend.

My backend wasn't super complex. Since I was going to be using a Rest API that invoked lambda, I just wrote some functions that would update a DynamoDB table and get the resultant count data.

# A little bit about the cloud resources I used

AWS makes managing a Rest API extremely simple, and it almost feels like cheating when they easily integrate with Lambda.

The website is running on S3 and I'm using CloudFront to serve that S3 bucket.

# A little bit about the infrastructure I built

I like Linux and I have a home lab, so instead of using GitHub actions, I integrated a local Jenkins instance in my lab with another local GitLab instance, both backed by CentOS.

I had Jenkins basically run my shell script which had a bunch of AWS cli tasks I was automating. Also, it was fun using OpenSSL to generate a self-signed cert for my Jenkins server.


# A little bit about the technologies I learned

Besides the GitLab/Jenkins VMs I configured, most of everything was an extension of what I learned while studying for the Solutions Architect Associate Cert except for how the browser works.

I had a bit of trouble with CORS blocking my xmlHTTPrequest function from working, and I had NO idea(I do now) about how browsers loaded a web page until I figured out how to not get a promise returned from a Javascript function.



# Was it worth it?

I'd say so. I'm much better at bash scripting, I'm pretty confident with my Linux skills now, and I've picked up more languages that I can write in now.

Most of all, I was able to get real-world Cloud experience out of this project and I was able to translate my skills that I learned at work over to the Cloud.

# Well, where's the website you made?

https://hey.matthasacloudresume.com/

^ It's right there.


# Can you shamelessly plug your LinkedIn?

I *guess*.

If you want to add me on LinkedIn, you can find me [here](https://www.linkedin.com/in/matthew-g-daffern)