Skip to content
CAMPUX Cloud Bootcamp
Field notes · Portfolio
Portfolio · Cloud Resume Challenge

The Cloud Resume Challenge (Azure): step by step for absolute beginners

By Captain O11 min read

The most recognised portfolio project in cloud, rebuilt for someone who has never opened the Azure portal — in chunks you can finish in an evening each, ending in one thing you can put on the table in an interview.

New to cloud? CAMPUX is a free, build-first course. Start here →

Every "how do I get cloud experience with no experience?" answer eventually points at the same project. The Cloud Resume Challenge has been the standard beginner portfolio piece for years, and for good reason: it is small enough to finish, but it makes you touch storage, serverless, a database, and a deployment pipeline — the exact spread a junior cloud role expects you to have seen. The catch is that most write-ups assume you already know your way around the portal and skip straight to Terraform. This one does not. If you have never deployed anything to Azure, start here.

The short version

The Cloud Resume Challenge (Azure) is a portfolio project where you build an HTML/CSS resume, host it on Azure Storage as a static site with HTTPS, add a visitor counter with Azure Functions and Cosmos DB, and automate deploys with GitHub Actions. Done in weekly chunks, a beginner can finish in four to six weeks.

The Cloud Resume Challenge pipeline: Blob static site, a Functions counter, Cosmos DB, and GitHub Actions CI/CD.RésuméHTML/CSSBlobstatic siteFunctionscounterCosmosthe countActionsCI/CDone connected build — storage, serverless, a DB, a pipelinedo it in weekly chunks, not one heroic weekend
Figure — The Cloud Resume Challenge in one line: a résumé hosted on Blob storage as a static site, a visitor counter served by an Azure Function, the count kept in Cosmos DB, and the whole thing redeployed by GitHub Actions on every push. Four services and a pipeline — a junior engineer’s week compressed into one show-able project.

What the Cloud Resume Challenge is (and why employers respect it)

The challenge was created by Forrest Brazeal, and the idea is deliberately simple: take the most personal document you own — your resume — and ship it as a real cloud application. Not a tutorial you followed and deleted, but a live URL you can send someone, backed by services you configured yourself.

The reason it carries weight in a job search is that the name is recognised. A hiring manager who has seen it before knows what it involves the moment you mention it, and knows you did not just watch a video. And even for one who has not heard of it, the build itself is the proof — a static site, an API, a database, and a pipeline is a junior cloud engineer's week compressed into one weekend-sized project. It answers the "walk me through something you built" question before it is asked.

The chunks — your weekly plan

The whole thing looks intimidating as a single block. It is not, once you cut it into pieces you can each finish in a sitting. Here is the map, with the Azure service each piece uses and the class that drills it if you want the full picture:

ChunkAzure serviceDrilled inRough time
1. Write the resume (HTML/CSS)An evening
2. Host it as a static siteAzure Storage static websiteClass 121–2 hrs
3. Add HTTPS + a custom domainAzure CDN / Front DoorClass 121 hr
4. Build the visitor-counter APIAzure FunctionsClass 412–3 hrs
5. Store the countAzure Cosmos DBClass 371 hr
6. Automate deploysGitHub Actions + OIDCClass 222 hrs

One chunk a week, around a job, gets you a finished project in about a month and a half — and a real understanding of each piece rather than a copy-pasted blur.

Chunks 1–3: the front end on Azure Storage

You do not need a framework. Write a plain one-page resume in HTML and CSS — the point is the cloud, not the markup. When it looks acceptable, you are ready to put it online.

  1. Create a Storage account and turn on static website hosting. An Azure Storage account has a "Static website" toggle that gives you a special $web container and a public URL. Upload your index.html and its assets there and the page is live on the internet — no web server to run.
  2. Front it with HTTPS and your own domain. The raw storage URL is functional but ugly and only does HTTP for a custom domain. Put a CDN or Front Door endpoint in front of it to get HTTPS and point your own domain at it. This is also your first taste of how real sites are served at the edge.

At the end of this you have a resume at https://your-name.com served from Azure. That alone is more than most applicants have built. Class 12 — Storage Accounts is where the static-site and Front Door pieces are drilled properly, and this Field Note walks the exact static-site-with-HTTPS setup.

Chunks 4–5: the counter (Functions + Cosmos DB)

Now the site does something. You will add a small "you are visitor number N" counter, which means the resume page needs to call an API, and that API needs somewhere to keep the number.

  1. Write an HTTP-triggered Azure Function. A Function is a small piece of code that runs only when called — no server to keep alive. Yours reads the current count, adds one, saves it, and returns the new number as JSON. Your resume page fetches that endpoint on load and shows the value.
  2. Persist the count in Cosmos DB. If you keep the number in memory it resets every time the Function goes cold. A single Cosmos DB item — one document holding the count — fixes that. The Function reads and writes that one item. This is the moment "serverless" and "database" stop being words and become things you wired together.

Serverless is drilled in Class 41 — Azure Functions, and the database side in Class 37 — Azure Databases. Keep the Function on the consumption plan and Cosmos DB on its free tier and this stays inside the free allowances.

Chunk 6: CI/CD with GitHub Actions

The final piece is the one that makes it look professional: you stop uploading files by hand. Put the whole project in a GitHub repository, and write a GitHub Actions workflow that redeploys the site (and the Function) automatically every time you push a change.

Do it the modern way and store no secret. Instead of pasting an Azure credential into GitHub, federate the workflow to Azure with OpenID Connect, so the pipeline trades a short-lived GitHub token for an Azure token at run time. It is the same pattern real teams use, and "my deploy has no stored secrets" is a genuinely strong thing to say in an interview. This is the heart of Class 22 — GitHub Actions, and this note builds a full Azure CI/CD pipeline end to end.

The value is not the resume. It is that you deployed storage, serverless, a database and a pipeline — and can explain each one.

Cost, gotchas, and how to keep it $0

The single fear that stops people finishing is the surprise bill. It is avoidable. The whole challenge fits inside Azure's free and always-free tiers — static hosting is pennies, the Functions consumption plan has a large free grant, and Cosmos DB has a free allowance that a visitor counter will never exceed. Two habits keep you safe: set a spending limit and a budget alert before you build anything, and delete resources you are done experimenting with. The only guaranteed cost is a custom domain name, which is optional.

The common snags are small and fixable: the static-website URL is the $web endpoint, not the account's default blob URL; the browser will block your Function call with a CORS error until you allow your site's origin on the Function; and Cosmos DB's free tier is one-per-subscription, so if you already used it elsewhere you will use the serverless option instead.

How to talk about it in an interview

Finishing the build is half the value; being able to narrate it is the other half. Do not say "I did the Cloud Resume Challenge." Say what you decided. "I hosted a static resume on Azure Storage behind Front Door for HTTPS, added a visitor counter with an HTTP-triggered Function backed by a single Cosmos DB item, and set up GitHub Actions with OIDC so there is no stored deploy secret." That is four services, a security decision, and a working URL — in two sentences. Have one thing you got wrong and fixed ready too; the CORS error is a good, honest one.

When you can do that, you have exactly what the "no experience" wall is really asking for: proof you have built something real, and the vocabulary to defend it.

Questions people also ask

What is the Cloud Resume Challenge?

It's a well-known portfolio project created by Forrest Brazeal that has you build and deploy your own resume as a cloud application. On Azure that means an HTML/CSS resume hosted on Azure Storage as a static site with HTTPS, a visitor counter powered by Azure Functions and Cosmos DB, and automated deployment with GitHub Actions. Finishing it signals real, end-to-end cloud skill.

How do I do the Cloud Resume Challenge on Azure?

Break it into weekly chunks. Write your resume in HTML and CSS, host it on Azure Storage as a static website, put it behind HTTPS with a custom domain, add a visitor counter using an Azure Functions API backed by Cosmos DB, then automate deploys with GitHub Actions. Tackling one chunk at a time keeps a beginner from being overwhelmed by the whole thing at once.

How long does the Cloud Resume Challenge take?

For an absolute beginner, roughly four to six weeks doing one chunk a week alongside a job. It goes faster if you already know some HTML or have touched the Azure portal, slower if every service is new. The point isn't speed — it's finishing something real and understanding each piece well enough to explain it in an interview.

Is the Cloud Resume Challenge worth it in 2026?

Yes, for a job-seeker with a thin resume it's one of the highest-value projects you can do. Employers recognise the name, and more importantly it forces you to touch storage, serverless, databases and CI/CD in one connected build — the exact spread a junior role expects. It gives you both a portfolio piece and a set of interview stories.

Does the Cloud Resume Challenge cost money?

It can be built almost entirely inside Azure's free and always-free tiers — static hosting, a small Functions app and Cosmos DB's free allowance cover most of it. Set a spending limit and a budget alert first, and delete anything you're not using. The optional cost is a custom domain name and, if you add it, the AZ-900 exam fee.

Further reading — the Microsoft docs
Your next class · free
You've read the idea. Class 12 — Storage Accounts is where you build it, hands-on — no account needed.Start Class 12 →
Captain O
Founder & instructor · CAMPUX Cloud Engineering Bootcamp
Part of the Azure portfolio guide. Next note: Build an Azure CI/CD pipeline project →