<?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>DEV Community: Eric Swantek</title>
    <description>The latest articles on DEV Community by Eric Swantek (@emswantek1).</description>
    <link>https://dev.to/emswantek1</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%2F2513693%2F26d10364-115e-454d-8923-dd3e8a53ede0.png</url>
      <title>DEV Community: Eric Swantek</title>
      <link>https://dev.to/emswantek1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emswantek1"/>
    <language>en</language>
    <item>
      <title>From Network Admin to aspiring Cloud Engineer - The Cloud Resume Challenge (Azure)</title>
      <dc:creator>Eric Swantek</dc:creator>
      <pubDate>Sun, 08 Dec 2024 16:07:52 +0000</pubDate>
      <link>https://dev.to/emswantek1/from-network-admin-to-aspiring-cloud-engineer-the-cloud-resume-challenge-azure-214k</link>
      <guid>https://dev.to/emswantek1/from-network-admin-to-aspiring-cloud-engineer-the-cloud-resume-challenge-azure-214k</guid>
      <description>&lt;p&gt;If you're reading this, then I've done it! I completed the Cloud Resume Challenge in Azure! Here's the current version of my resume webpage &lt;a href="https://eric.swantek.me/" rel="noopener noreferrer"&gt;eric.swantek.me&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it all started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why the resume challenge?
&lt;/h3&gt;

&lt;p&gt;About eight years ago, I was very excited to get into network administration. But as time passed, I wanted to get into something more than the technology I had been working with. Over the last two years, I have become more intrigued by cloud technologies, so I began to look for ways to expand my role at work and gain experience on the job. However, that was not meant to be, and I needed a new approach. Earlier this year, my wife, a DevOps engineer, put me in contact with a Cloud Engineer who helped me confirm that I wanted to break into cloud engineering-type roles. Unsure how to get there myself, my wife presented me with &lt;a href="https://cloudresumechallenge.dev/docs/the-challenge/azure/" rel="noopener noreferrer"&gt;The Cloud Resume Challenge&lt;/a&gt;, which really got me excited! &lt;/p&gt;

&lt;p&gt;As I read through Forrest Brazeal's ebook, The Cloud Resume Challenge Guidebook Azure Edition, I became determined to complete it. The challenge is presented as a project spec with 16 steps with some tips, but not the implementation to complete each. The implementation of all parts had to be researched. At this point, I had little to no experience with any of the technologies this challenge called for, but I couldn't wait to jump in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Achieving the AZ-900 Certification
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Learning the platform
&lt;/h3&gt;

&lt;p&gt;The concept of certifications was not really new to me. Back in 2019, I independently got the Cisco Certified Network Administrator certification to bolster my skills for the job I held at the time. Seeing that I had to get the AZ-900 Azure Fundamentals Microsoft certification for this challenge made sense.&lt;/p&gt;

&lt;p&gt;I started by reading through Microsoft's free self-paced documentation on Microsoft Learn, which laid out all the knowledge needed to pass the AZ-900 exam. After going through the material most evenings after work and on weekends, I passed the exam on my first try in July!&lt;/p&gt;

&lt;h2&gt;
  
  
  Early technical bits
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Creating a Resume in HTML with CSS, with a little JavaScript
&lt;/h3&gt;

&lt;p&gt;I was vaguely familiar with HTML and CSS, but I last worked with them as a college student over 11 years ago. So, I set out to brush up on basic HTML and CSS by reading through resources from w3schools, as well as Mozilla's developer websites.&lt;/p&gt;

&lt;p&gt;After a few minutes, I got the hang of the HTML structure and tags I would use. I set about creating the folder structure recommended by documentation I found online; then, I created empty index.html, styles.css, and scripts.js files. To get something usable immediately, I translated my last resume from Google Docs to HTML, adding metadata, head, body, and list items to mimic my original resume's structure and follow best practices.&lt;/p&gt;

&lt;p&gt;While JavaScript was only called for later, my wife suggested adding a basic light mode/dark mode toggle for user experience and readability. This was straightforward to implement with just a few lines of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  First Experiences with Azure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Resource Groups with Resources
&lt;/h3&gt;

&lt;p&gt;Creating an Azure Account and running on a consumption plan was easy. The tricky part was planning and designing a naming scheme for subscriptions, resource groups, and resources. I realized with my first resource group that I wanted to change the name, but that meant I needed to move the storage account to a new resource group. After researching ways to move the storage account, I used the portal to initiate the move out of familiarity and simplicity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source Control and CI/CD
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using GitHub and other tools
&lt;/h3&gt;

&lt;p&gt;I had never been a developer, so I had never worked with GitHub or CI/CD pipelines. After creating my repositories and writing the YAML, seeing my code changes automatically getting pushed was fun! Another part I found cool was having all that code versioning history and being able to quickly revert when something stopped working.&lt;/p&gt;

&lt;h2&gt;
  
  
  DNS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Azure CDN and Domain Registrars
&lt;/h3&gt;

&lt;p&gt;I first created the domain swantek.me on GoDaddy, but admittedly, I missed that SSL certs were a separate and expensive offering from them. After doing more research, I found that Cloudflare offered SSL certs for every domain without extra cost, plus many other neat features. But before moving my domain, I had to wait two months before I was permitted to move it.&lt;/p&gt;

&lt;p&gt;Once the time restrictions were lifted, the migration went very smoothly, and I had my SSL cert in place. Seeing my web page display without clicking through browser warnings was a proud day!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Big Technical Hurdle
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Website, Python Function App, and Cosmos DB
&lt;/h3&gt;

&lt;p&gt;At this point, I had recently left my job for a much-needed break. After a few weeks, I started working on the final technical parts of this project. I now had much more time and energy to focus on learning and implementing the final parts.&lt;/p&gt;

&lt;p&gt;I created my Cosmos DB with the NoSQL API instead of the suggested Table API because I reasoned companies I may encounter would likely use this API. After all, it supports SQL syntax database admins would be used to. I initially tried implementing the database with only two columns and one row. After spending a significant amount of time trying to get this working with the Python Function App, I accepted some help and discovered my implementation was too simple. To manipulate the DB and increment a value, there needed to be at least one more value to work with.&lt;/p&gt;

&lt;p&gt;The Azure Function app needed to run on Python with an HTTP trigger. Creating the resource was pretty easy; actually getting the Python code to work and understand Azure Functions, however, took many hours to figure out. While working through this part off and on, I had several code rewrites and often sought help clarifying my understanding. The most annoying part was whenever I pushed my code to Azure and the HTTP trigger disappeared! This happened fairly often early on, and I figured out this occurs whenever the code has fundamental errors. Having working code and a trigger that functioned whenever its HTTP endpoint was hit (tested with Postman), I celebrated another technical piece down.&lt;/p&gt;

&lt;p&gt;The project called for JavaScript to talk to the Azure Function app and display a visitor counter, with the count stored in Cosmos DB. While the dark mode/light mode toggle I implemented earlier was straightforward, talking with the Function App was another beast.&lt;/p&gt;

&lt;p&gt;With a good bit of research, I managed to get very close to implementing this functionality before getting some help. Turns out, I just needed to call a JSON parsing function already imported and take its output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blogging Out
&lt;/h2&gt;

&lt;h3&gt;
  
  
  This post, final thoughts
&lt;/h3&gt;

&lt;p&gt;Working through this project proves I can pick up new skills and technologies. I'm now working towards the AZ-104 and AZ-700 certifications, hoping to get into a cloud role someday and bring some of my networking background with me.&lt;/p&gt;

&lt;p&gt;There's always more to play with, and I don't believe anything is ever a truly finished product. I plan to keep using what I did here to continue iterating on my website and learn more Azure features!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Codebase&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/emswantek" rel="noopener noreferrer"&gt;
        emswantek
      &lt;/a&gt; / &lt;a href="https://github.com/emswantek/es_cloud_resume" rel="noopener noreferrer"&gt;
        es_cloud_resume
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      repo_for_cloud_resume_web
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;es_cloud_resume&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;repo_for_cloud_resume_web&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/emswantek/es_cloud_resume" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;

&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/emswantek" rel="noopener noreferrer"&gt;
        emswantek
      &lt;/a&gt; / &lt;a href="https://github.com/emswantek/webdbfunction" rel="noopener noreferrer"&gt;
        webdbfunction
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>azure</category>
      <category>cloud</category>
      <category>career</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
