From Barista to Cloud Engineer
Tags: beginners, aws, devops, career
Published: 2024-01-12 17:48:32

So imagine one day you don't even have enough skills to google a menu from the restaurant you want to eat at, then the next day you find yourself thrown into the deep end of AWS, networking, and coding. Well that's what happened to me, I woke up one day and decided I needed a job. Like a REAL job, an adult job that I could be invested in and want to grow within (that thing some people call a career). Being able to achieve that in customer service or some basic office job just wasn't going to cut it, so I went to the most trusted person in my life - MOM!

When I told her I wanted a career where I could make something of myself and be proud of myself her eyes lit up, I'm pretty certain I saw actual stars spinning in them. 

"I have been waiting for this day Mina, we're going to make you into a DevOps engineer!"

Cue my look of utter astonishment, many tears had been shed and much yelling had ensued from me just attempting to connect to a printer. How in the world was I supposed to create, manage and fix problems using a computer??? I soon found out it would involve a LOT of studying and messing things up over and over until I figured out how to do them correctly, but in a matter of 2 months I completed a SysOps Associate course ([this](https://learn.cantrill.io/p/aws-certified-sysops-administrator-associate) one if you're interested, I highly recommend) and passed the Cloud Practitioner Certification - SysOps Cert is coming, stay tuned.

I went from someone who could barely launch Minesweeper to someone who knows what the terminal is and can NAVIGATE it. Someone who knows what a virtual machine is and how to launch it and create things with it, who can architect solutions and use networking to do so. Ooooor so I thought, turning theory into practical abilities is a whole other beast and yet another thing I had to learn, enter the [Cloud Resume Challenge](https://cloudresumechallenge.dev/docs/the-challenge/aws/). 

Once I had my certificate I thought I would be ready to go, update my resume and finding a job would be easy peasy. Well I quickly realized I had no way to show I actually knew anything, although the course I took was great at teaching there weren't really any projects that you got to create during the process that weren't just step by step. So I reached out to my #1 again (Mom, of course) and other people I knew in the industry and they all recommended the Cloud Resume Challenge. Simple really, build a website and upload your resume info to it, one spot to both display your engineering prowess and to host your resume for potential employers. I quickly learned that most of the things on the list of to dos I had actually never done before:

- Writing HTML and CSS (or any kind of code for that matter)

- Using github to automatically push changes to my Static Website S3 bucket

- Troubleshooting and fixing issues or bugs (Wow that's a big one)

- Creating and connecting a Lambda function to a database

- Creating a blog (Guess I can check that one off the list) 

So where does one start when they have a huge list of to dos and they have to learn it all from scratch. Personally I'm a very visual person so I wanted to be able to see my progress as quickly as possible and see how changes and additions of steps affected it. To me that meant I had to start with building the website - HTML, CSS and JavaScript - three things I had absolutely zero knowledge in. What I had gained knowledge in was google, and I quickly discovered that you don't have to write code from scratch (all though I am still in the process of learning different languages so that I can) but you can take bits and pieces from peoples published code, splice it together, add a sprinkle of your own spice and BAM! you've got a basic website that can get the job done. As I learn more, I can add more and really make it how I envision it, but for now it works and I'm very proud I managed to put it together with my zero knowledge of coding.

SO I managed to learn enough to put together the files for a website but how do I make them actually... website? S3 of course! This section was pretty easy as I had created a static website in my course, and figuring out how to set it up with Cloudfront wasn't too difficult considering AWS has a ton of great resources and plenty of step by step guides. Now I had an actual domain which pointed to the S3 bucket that held my files and Voila! we have a website.

Now having the website is all fine and dandy but the fact that you have to manually remove and then upload a new HTML file every time you make changes is a pain. Thankfully we have our next step, and lesson, to help us out. CI/CD was a completely foreign concept to me and boy did github give me trouble when setting up my repository (if you see 3 practice repos, no you don't). Once I had spent a few hours fiddling with the command line and learning many new git commands I got my repository set up and setting up CI/CD was really the easiest part. I discussed with my new old friend google and it pretty quickly gave me a simple answer of using a github action. After some errors and figuring out how to fix those errors, yay for learning to troubleshoot, my github now updates the documents to my S3 bucket directly.

Now I have a website, but it needs to have a bit more pizzaz (pizzaze? who knows) to show off some more skills. Lets add a viewer counter to the page! At first I thought you could just add one within the index.html which, yes you can, but that doesn't really show any extra skills and it can easily just be reset. No, the better way is to create a Lambda function with an API which accesses a DynamoDB table that holds and updates your count. So... how exactly does one do that? Back to google we go! I knew I had to create a DynamoDB table so that part was easy enough, and a Lambda function of course, but once again my mortal enemy returned. CODING - python to be exact. Turns out it wasn't that hard to find some code similar to what I needed, change it up a bit and there we have it. A Lambda function which... didn't work at first. After a snack and a coffee, which is essential in cloud engineering I'm discovering, the issue was simple to figure out easy to fix (Needed to add permissions, I know you were just dying for the answer). I popped that function into my website with some added html and javascript and away it goes, counting like there's no tomorrow.

And that brings us to where we are now, checking off that last item off of creating a blog. I've never made one but I've gotta say it's pretty therapeutic. I guess I've done everything I need to do for my Cloud Resume Challenge...

WAIT A MINUTE

IAC

Infrastructure as Code is still looming over me, so that instead of manually creating everything in the AWS console you simply upload a document and it spits out all the resources you defined. You know what that means - more CODE

Well I guess it's time for me to go take some more lessons and do some more googling until I figure out IAC, but which to choose CFN or Terraform? I think I'm going to make these a series so keep an eye out for my next post about my adventures with IAC!