Building My Cloud Resume Challenge! From AZ-900 to Serverless Architecture
Entering my third year as an IT student, my career goal became crystal clear: I want to be a Cloud Engineer. Earning the Microsoft Azure Fundamentals (AZ-900) certification was a massive first step, but passing a multiple-choice exam doesn't deploy infrastructure. I needed hands-on experience to prove I could bridge the gap between cloud theory and production reality. That is why I took on the…
Entering the third year of their IT studies, the author had a clear career aspiration: to become a Cloud Engineer. While passing the Microsoft Azure Fundamentals (AZ-900) certification was a significant milestone, the author realized hands-on experience was crucial to demonstrate their ability to translate theory into production.
Thus, they embarked on the Azure Cloud Resume Challenge (created by Forrest Brazeal). Rather than constructing a simple static website, the author aimed to design a secure, fully automated serverless backend from the ground up. In this account, we will delve into the architecture, custom design, and valuable lessons learned throughout this endeavor.
Throughout the project, the author employed an agentic workflow, utilizing AI coding tools as a pair-programmer. As the technical lead, the author directed the AI to assist with scaffolding templates, generating testing boilerplate, and accelerating styling. This modern approach allowed the author to focus on high-level engineering tasks, such as orchestrating automation and resolving remote cloud conflicts, all while minimizing time spent on syntax-related issues.
The project proceeded through several steps:
1. The author commenced by earning the Azure Fundamentals (AZ-900) certification, which validated their foundational understanding of Azure cloud services.
2. They then designed a custom aesthetic for the website, utilizing a deep navy Azure color palette, asymmetric edges, and a pixelated "jdm" SVG favicon. Additionally, the author incorporated custom Open Graph tags to ensure clean previews appear on LinkedIn.
3. The frontend was hosted in an Azure Blob Storage $web container. To enhance security and accessibility, the author mapped a custom domain using Cloudflare and enforced HTTPS encryption.
4. A lightweight client script was developed to automatically query the backend database upon page load, displaying a live visitor count.
5. An Azure Cosmos DB (Table API) was set up to store the visitor count.
6. A serverless API, built using the Azure Functions Python v2 programming model, was created to retrieve and update the visitor count.
7. Automated unit tests were written using pytest to ensure the code functioned correctly without interacting with the live database.
8. An Azure Bicep template was written to automatically create the database, storage account, and function app, streamlining the deployment process.
9. The author's entire project was maintained in a GitHub repository. Given the project contained personal resume data and a custom design, the author switched the repository's standard open-source license to "All Rights Reserved" to protect their intellectual property.
10. GitHub Actions were implemented to automate the entire workflow, from testing to deployment of both backend and frontend code.
11. During deployment, the author encountered 503 errors, which were traced back to a read-only setting (WEBSITE_RUN_FROM_PACKAGE=1) in the Bicep template conflicting with GitHub's remote build process. By removing this setting, the issue was resolved.
12. Finally, the author documented the journey through a blog post, detailing each step of the process and sharing the live project, as well as the architecture and code on GitHub and LinkedIn.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.