<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jawad Shahid</title>
    <description>The latest articles on Forem by Jawad Shahid (@jawadshahid07).</description>
    <link>https://forem.com/jawadshahid07</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1747132%2Fd257e617-9cb0-49d2-9134-6c10bef0f4df.jpeg</url>
      <title>Forem: Jawad Shahid</title>
      <link>https://forem.com/jawadshahid07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jawadshahid07"/>
    <language>en</language>
    <item>
      <title>How to Transition from a Generalist to a Specialist in Cloud Computing: My Journey Through the Cloud Resume Challenge</title>
      <dc:creator>Jawad Shahid</dc:creator>
      <pubDate>Mon, 08 Jul 2024 12:24:57 +0000</pubDate>
      <link>https://forem.com/jawadshahid07/how-to-transition-from-a-generalist-to-a-specialist-in-cloud-computing-my-journey-through-the-cloud-resume-challenge-371n</link>
      <guid>https://forem.com/jawadshahid07/how-to-transition-from-a-generalist-to-a-specialist-in-cloud-computing-my-journey-through-the-cloud-resume-challenge-371n</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftimxg5himehsutz1d4n7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftimxg5himehsutz1d4n7.png" alt="Cloud Architecture Diagram" width="800" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After three years of my CS degree, I explored every field I could specialize in. From web development to machine learning, Java to C++, you could name anything, and I would tell you about a project I had made revolving around that particular thing. At this point in my life, I had become a jack of all trades, master of none. Why was that? The answer to that is simple. I couldn't settle on a field. &lt;/p&gt;

&lt;p&gt;Until I found out about the cloud, I didn't make much of it. It's another field I'd explore and eventually lose direction in. Plus, 'cloud computing' sounds like just about the most complex field ever. But I decided to take a step forward and get into it. I discovered that AWS has the largest market share of the three largest cloud providers, and I decided to start with AWS.&lt;/p&gt;

&lt;p&gt;So what next? Certifications?&lt;/p&gt;

&lt;p&gt;From my three years of studying computer science, if there was one thing I learned, it was this: to learn something, you have to get your hands dirty. That's right, hands-on work. I had to make projects. In the past, I've taken courses that contain 50+ hours of videos each, only to decide I don't want to be doing that in the future. Moreover, those videos wouldn't teach me more than theory; I had to do a project to truly understand anything. &lt;/p&gt;

&lt;p&gt;So, eventually, I found the cloud resume challenge, labeled as the entry point for beginners trying to get into the cloud. It immediately caught my attention. I got my hands on the AWS edition book and had no idea what I was getting into. I can say now that it was a life-changing experience. &lt;/p&gt;

&lt;p&gt;After completing the cloud resume challenge, here is my journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You may access my resume website here:&lt;/strong&gt; &lt;a href="//jawadify.xyz"&gt;jawadify.xyz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The initial requirement of the cloud resume challenge was to acquire the foundational Cloud Certified Practitioner Certification. However, this step was optional. As I already had an IT background, I skipped this step. My goal was to do hands-on work before I started studying for certifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1: Building the front-end&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step of this part was simple: making a resume in HTML and CSS. I already had ample experience doing this, so I did the additional developer mod. I made the front end using React instead of simple HTML and CSS. Moreover, since I had recently updated it, I could replicate the exact resume I usually hand out to recruiters. What better way to say to someone asking for your resume, "Go to this website," and have the exact resume printed on their screen?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foaqqw2qht5y9964mct8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foaqqw2qht5y9964mct8a.png" alt="Resume Preview" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step, however, was much trickier. At this point, I started feeling the lack of cloud knowledge I had, perhaps from skipping the CCP certification. I was lost. Static S3 website CloudFront, Route 53? I had no idea what to do. I decided to pause to learn more about the cloud and cloud development. I started reviewing the &lt;a href="https://docs.aws.amazon.com/" rel="noopener noreferrer"&gt;AWS docs&lt;/a&gt; and YouTube tutorials explaining AWS and the cloud and completed an &lt;a href="https://awseducate.instructure.com/courses/891" rel="noopener noreferrer"&gt;Introduction to Cloud 101&lt;/a&gt; course by AWS Educate. Eventually, I cracked this part and could access my resume from anywhere using the internet. I thought I had done all the work, but it was just the start!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 2: Building the API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At this stage, things became more advanced. Thankfully, I had previous experience with developing APIs, and even though the boto3 library was new to me, I went back to the docs to gain guidance so I could set up my Lambda function using Python. Once again, I struggled to navigate the cloudy stuff, but the AWS docs helped. As for source control, I had set up my GitHub repository from the start, so I just pushed the changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv91y0vj7tph9zxgqufw7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv91y0vj7tph9zxgqufw7.png" alt="API Result" width="273" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It took some going back and forth, though, as I had to spend some time testing the API to make sure it was doing what I wanted. There were few lines of code compared to what I have done before, but the errors, especially those CORS errors, made me question whether cloud computing suits me. After I went into the developer console on my browser, I discovered that they were the cause of all my problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 3: Front-End/Back-End Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had to write my JavaScript code to display the visitor count on my resume, utilizing the call to my API. To do that, I also had to set up an API gateway to my lambda function. After this, I wrote some tests in Python to make sure my API was working properly. I wrote unit tests, integration tests, and end-to-end tests. I had some experience in Selenium, so this time, I chose to try out &lt;a href="https://pptr.dev/" rel="noopener noreferrer"&gt;puppeteer&lt;/a&gt;, doing something new.&lt;/p&gt;

&lt;p&gt;I also wrote a test that directly called the API to ensure it was correct by comparing the values from the first and second calls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 4: Automation / CI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The good part was that Infrastructure as Code (IaC) was the first thing I set up at the start of this challenge. I used AWS SAM, which was the one mentioned in the challenge. Working with IaC opened me up to the actual world of the cloud. It is truly magical that I could delete all the work I have done on the cloud by using one command and deploying it all again with all my settings with another command. IaC is where it's really at.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofo2zfqtlase5wvvrt5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofo2zfqtlase5wvvrt5m.png" alt="SAM CLI" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I already had all my SAM code on the GitHub repository; my front end was with it. I chose to keep it as one repository rather than two for simplicity. I was already working with makefile to make my deployment effortless, but then I realized the magic of GitHub actions. I made a workflow template and, within it, created a bunch of jobs. One job was to test the code; another was to build my infrastructure, another was to deploy my site, and so on. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr13ey1ncez0wsonunpb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr13ey1ncez0wsonunpb.png" alt="CI/CD Pipeline" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At last, my website was complete. I developed a complete end-to-end project from front-end to back-end, testing through CI/CD and automation. I don't believe I've ever made a project that was so complete. It touched on everything you'd do when developing a project, and it felt extremely satisfying. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb37b9hut8i9h4e6new3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcb37b9hut8i9h4e6new3.png" alt="CI/CD Run Results" width="334" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One thing was clear, though: I learned a lot. In the beginning, I struggled to make an AWS account and assign it permissions through IAM, which I needed to figure out what to make of. Now, I feel confident in my AWS skills. I could easily navigate the console, know what to do and where to go and build and deploy resources using code with an IaC tool. &lt;/p&gt;

&lt;p&gt;Now, I have started out pursuing my cloud journey. I did the project, and I found out what cloud computing is. I decided that this was it. Cloud engineering was what I wanted to be doing in the future. Therefore, I will now work on doing more projects and pursue the Solutions Architect Associate Certification to have an all-rounded cloud portfolio by next year, when I will start applying for a cloud role.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>career</category>
    </item>
  </channel>
</rss>
