DEV Community

Bikila Hunde
Bikila Hunde

Posted on

My Journey Through the Cloud Resume Challenge: Building a Serverless Portfolio

Introduction
Completing the Cloud Resume Challenge was one of the most rewarding experiences in my cloud learning journey. This project helped me bridge the gap between theoretical cloud knowledge and real-world implementation by building a serverless, fully automated resume website hosted on Azure.

In this blog post, I’ll walk you through:
✅ Why I chose the Cloud Resume Challenge
✅ The architecture of my solution
✅ Key technical challenges & learnings
✅ How this boosted my cloud skills

Why the Cloud Resume Challenge?
As someone transitioning into cloud engineering, I needed a hands-on project that:
✔ Demonstrated cloud skills in a practical way
✔ Automated deployments using CI/CD
✔ Integrated serverless components (Azure Functions, Cosmos DB)
✔ Proved I could build a real-world cloud application

The Cloud Resume Challenge was the perfect fit—combining frontend, backend, infrastructure, and automation into one cohesive project.

Architecture Overview
My resume website is built on Azure Static Web Apps with:

Frontend
HTML/CSS/JS (hosted in /public)

Fully responsive design (works on mobile & desktop)

Visitor counter (dynamic feature)

Backend
Azure Function (Python) for visitor counting

Cosmos DB (Table API) to store & retrieve counts

Infrastructure as Code (IaC)
GitHub Actions for CI/CD automation

Azure Static Web Apps for serverless hosting

Automation
Auto-deploys on Git push

Testing (future improvement)

Key Technical Challenges & Solutions

1. Visitor Counter with Cosmos DB

Problem:

I needed a serverless way to track visitors without managing a full database.

Solution:

Used Azure Functions (Python) + Cosmos DB Table API

Atomic increments ensure accurate counting

CORS headers for secure frontend-backend communication

Simplified Azure Function for counting

def increment_counter():
entity = table_client.get_entity(partition_key="counter", row_key="main")
entity["Count"] += 1
table_client.upsert_entity(entity)
return entity["Count"]

2. CI/CD with GitHub Actions

Problem:
Manual deployments are slow and error-prone.

Solution:

  • Auto-deploy on Git push
  • Separate build & deploy steps

# GitHub Actions Snippet
name: Deploy to Azure
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_TOKEN }}
app_location: "public"
api_location: "api"
skip_app_build: true

3. Cost Optimization

Problem:
Cosmos DB can get expensive if not configured properly.

Solution:

Used Table API (cheaper than SQL API)

Serverless pricing (pay-per-request)

What I Learned
🔹 Serverless architectures reduce operational overhead
🔹 CI/CD pipelines save time and reduce errors
🔹 Infrastructure as Code (IaC) makes deployments repeatable
🔹 Cloud cost management is crucial

Future Improvements
🚀 Add automated testing (Jest, Playwright)
🚀 Implement Terraform for IaC
🚀 Add authentication (Azure AD)

Final Thoughts
This project was a game-changer for my cloud career. It forced me to:
✔ Think in cloud-native patterns
✔ Automate everything
✔ Solve real-world problems

If you're learning cloud, I highly recommend the Cloud Resume Challenge!

Check out my live resume:
GitHub Repo:

Would you try the Cloud Resume Challenge? Let me know in the comments! 🚀

CloudComputing #Azure #DevOps #Serverless #CloudResumeChallenge

Top comments (0)