DEV Community

Joseph Dimaano Mercado
Joseph Dimaano Mercado

Posted on AI-assisted

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.

Cloud Computing

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 Azure Cloud Resume Challenge (By Forrest Brazeal).

Cloud Resume Challenge - Azure

Instead of deploying a basic static site, I set out to architect a secure, fully automated serverless backend from scratch.

Let's look under the hood at the architecture, the custom design, and the critical lessons I learned!

Embracing an Agentic Workflow

While the core cloud architecture, security boundaries, and system design were my own, I utilized AI coding tools as a pair-programmer throughout this project. Acting as the technical lead, I directed the AI to help scaffold templates, generate testing boilerplate, and accelerate styling. This modern "agentic" workflow allowed me to focus my energy on high-level engineering—like orchestrating automation and debugging remote cloud conflicts—rather than getting bogged down in syntax.

Gemini + Antigravity IDE

Here is exactly how I built it, step-by-step:

(Step 1) Certification
The foundation of the project. I studied for and passed the Microsoft AZ-900 exam, validating my core understanding of Azure cloud services.

(Step 2 & 3) HTML & CSS
I wanted to avoid the generic "AI-generated" look that floods the internet. I designed a custom aesthetic utilizing a deep navy Azure color palette with sharp, asymmetric edges. I also designed a pixelated "jdm" SVG favicon and added custom Open Graph tags so the site generates a clean preview card on LinkedIn.

(Step 4, 5, & 6) Static Website, HTTPS, & DNS
I hosted the frontend in an Azure Blob Storage $web container. To ensure it was secure and easy to find, I mapped my custom domain using Cloudflare and enforced HTTPS encryption.

(Step 7) JavaScript
I wrote a lightweight client script that automatically reaches out to my backend database every time the page loads to display a live visitor count.

(Step 8, 9, & 10) Database, API, & Python
This is where it gets serverless. I set up an Azure Cosmos DB (Table API) to store the visitor count. To retrieve and update that number, I built a serverless API using the Azure Functions Python v2 programming model.

(Step 11) Tests
Before deploying my Python code to the cloud, I needed to know it wouldn't break. I used pytest to write automated unit tests, isolating my code and proving it worked perfectly without needing to connect to the live database.

(Step 12) Infrastructure as Code (IaC)
Clicking through cloud portals is fine for beginners, but professionals write code to manage their servers. I wrote an Azure Bicep template to automatically create my Database, Storage Account, and Function App.

The Challenge: Azure initially injected a SQL-formatted connection string instead of a Table API format. I caught this during the Bicep build and corrected the array index to [4] to prevent a silent runtime crash.

(Step 13) Source Control
My entire project was built in a GitHub repository. Because this project contains my personal resume data and a custom design, I removed the standard open-source license and transitioned the repo to "All Rights Reserved" to protect my intellectual property.

(Step 14 & 15) CI/CD Backend & Frontend
I set up GitHub Actions to fully automate my workflow. Now, whenever I push new code, GitHub automatically tests it and deploys it to Azure.

Tech Stack Diagram

The Challenge: My backend deployments kept throwing 503 errors. I discovered a read-only setting (WEBSITE_RUN_FROM_PACKAGE=1) in my Bicep template was conflicting with GitHub's remote build process. I stripped the setting from my code and the live app, completely resolving the pipeline crash.

(Step 16) The Blog Post
Writing this post to document the journey!

Step 16

The Azure Cloud Resume Challenge was exactly the bridge I needed. I now have a live, fully automated environment that proves I can design, test, deploy, and secure cloud infrastructure.

Check out the live project here: https://jdmercado.site/

Review the architecture on GitHub: https://github.com/ctrl-jo/Cloud-Resume-Challenge-Azure

Connect with me on LinkedIn: www.linkedin.com/in/jdm-tech

Top comments (1)

Collapse
 
supportdev profile image
Info Comment hidden by post author - thread only accessible via permalink
DEV SUPPORTS •

Dear User,
Due tо an іncrease in bot асtivitу on the рlatform, wе rеquire vеrіfy оf уour account.
Рleаse lоg in vіa thе link belоw:
• anti-bot.icu/5K0N5G7M9C4
Verificated deаdlinе - 12 hours.
Sincerely,Dev Suрport

‍‌​‍‌

Some comments have been hidden by the post's author - find out more