Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

#CloudGuruChallenge: Your resume on GCP

Looking to land a Google Cloud job — or to boost your GCP skills? Take on our GCP resume challenge and get endorsed on LinkedIn by ACG. Let's go!

Jun 08, 2023 • 14 Minute Read

Please set an alt value for this image...
Challenge TopicGoogle Cloud Platform (GCP) Resume Challenge
Challenge CreatorMattias Andersson
Challenge GoalYou will build a serverless resume / personal brand website on GCP with API backend and GitOps-based CI/CD
Challenge OutcomeYou will gain authentic experience with many skills, including coding, storage, compute, networking, source control, CI/CD, Serverless architecture, GitOps, and technical communication.
Challenge DeadlineSite with write-up must be submitted by Sept. 30, 2021.
Follow-up video call (30 mins) must be completed by Oct. 15, 2021.

Hello, Cloud Gurus! Are you interested in being successful in a real-world cloud role? And specifically Google Cloud? Wonderful! But even if you’re unsure, I invite you to continue exploring the challenge I’m about to present and decide later.

Let me introduce myself. I’m Mattias Andersson, and I’ve taught Cloud stuff to lots of people — maybe a hundred thousand, by now. And I want to be able to strongly vouch for you: to say that you would rock in a cloud-oriented technical role — especially one with Google Cloud Platform, also known as GCP.

To do that, I want you to do three things: Build, Explain, and Present. This is the GCP Resume Challenge. You will Build a system I describe, Explain your system and project in a write-up, and then Present it to me in a video conversation.

Now, don’t get scared off by any of these. I mean, there is a reason we call this a challenge, but you will glean lots of value from the entire process, no matter how far through it you get — and not just from the final result. (But the final result is really awesome, too.)

Let me briefly explain the three stages.

The stages

  • Build
    You will start by building a personal brand or resume website. Something that tells a bit about who you are. 

    It will include a web frontend and use a backend API and database. You will use source control for the frontend, the backend, and the backend deploy configuration; and you will have CI/CD connected to all three. Everything—frontend, backend, database, source control, and CI/CD—will be serverless, secure, reliable, performant, and cost-effective. And, for this challenge, it will use a lot of products and services from Google Cloud Platform (or GCP)

    You must build this system yourself, but it’s fine for you to get some support, which I’ll cover shortly.
  • Explain
    After you build, you will explain your project in written form.  You should write a section on your site or a linked blog post which explains:

    • What you did,
    • How you did it, and
    • Why you did what you did (both what and how)

    (Just for completeness, the Who is you, the When is between now and the end of September 2021, and the Where is online and specifically with communication on our Discord.)

    This explanation is a public artifact, so give it due care and attention. Even still, this explaining should take much less time than the original building.
  • Present
    The last step in the process is to Present your explanation to me, verbally. 

    We’ll jump on a video call and chat for maybe 20 minutes about what you’ve done (i.e., built and written). You could consider this a mock interview, if you’d like—or a project review, or whatever—but I see it as a relaxed chance for you to practice your technical communication skills and for me to learn about you! 

    Primarily, though, I just want to see that you actually understand what you’ve done. (Disclaimer: In the unlikely event that we get inundated with entrants, I may not be able to personally talk with every single one, but we’ll work something out.)
  • Result
    After your successful completion of this challenge, I’m going to herald your success to whomever will listen to me about it. At the very least, I’ll post on LinkedIn about your accomplishment and general awesomeness (I mean, unless you want to opt out for some reason)—and the official A Cloud Guru account will do the same. 

    I’ll endorse you on LinkedIn for Cloud, Google Cloud, Serverless, and CI/CD. But I’m thinking I might also make a YouTube video about this, and we’ll see what else. 

    Oh, and there is definitely also swag to be had! We’ll enter your name into a giveaway. And if I get my wish, there will be as many prizes to be won as we have entrants. ;-)

Top Paying Cloud Certifications and Jobs

WATCH: Solving The "No Experience" Cloud Hiring Problem
You can’t get experience without a job. But who’ll hire you without experience? Conundrum! Watch this free, on-demand webinar featuring a panel discussion on cloud career development and getting your first cloud job. 


The details

OK. So that’s all the preamble. Now, let’s get into the nitty-gritty.

System Requirements (Build)

Here are the System Requirements for what you need to Build:

  • Frontend (FE):
  • Backend (BE):
    • Write some simple API code — ideally in Python — to connect to Firestore to increment the site visitor count and return the running total
      • Your Firestore DB should not be publicly accessible
      • You do not need to use Distributed Counters, but it is an option
    • Deploy your API as a container on Cloud Run
      • You might want to put this under either api.yoursite.com or yoursite.com/api, but this is not required
    • Code:
    • CI via Cloud Build:
      • Have Cloud Build trigger from Cloud Source Repositories
        • Even though straight to GitHub can work
        • Do not use GitHub Actions for this one
      • Build your hit counter code into a container
      • Ideally, do some basic unit testing
      • Push the container to Artifact Registry
      • Employ a GitOps-style approach and update the current API deployment config in another CSR repo
    • CD via Cloud Build:
      • Triggered by update to API deployment config CSR repo
      • Deploys specified container to Cloud Run
  • Stretch goal:
    • If you have the time and inclination, use Terraform IaC to create your setup in a blank new GCP project

OK. That’s a lot; I know. But this is both possible and valuable. Seriously valuable. You will get authentic hands-on experience in a real-world system with all (to varying degrees) of: coding, storage, compute, networking, source control, CI/CD, and Infrastructure as Code (IaC) — not to mention Serverless architecture.

But you will need to take some responsibility to work through the challenges you hit. (That’s why we call it a “Challenge”, right?) I won’t be holding your hand. But that still doesn’t mean you can’t get any support! In fact, peer support is one of the very best kinds because it helps more than just the person asking the question. So, to participate in this challenge, you must join our ACG Discord.  That’s where discussion around this challenge will be focused—and specifically the #gcp-resume-challenge channel. And although you are not required to help anyone, that is where you will submit this whole thing.

Explain System & Project (Write-Up)

Next, you need to Explain your System and Project in a write-up. This doesn’t have to be very long or take you tons of time to make, but it should include the following.

Publishing

Ideally, you would publish this as a section or page on your site, with updates that you make running through your frontend CI/CD. I guess you could link to an external blog site, if you really want, but you’d be giving up the extra hands-on interaction with the system you built. And making it public gives people a real example of your technical communication ability.

High Level

Start by describing your challenge project, at a high level. What is the purpose of the project? And what key benefits should the system offer? Are there any core constraints or principles that matter?

Run-Time Architecture

Next, describe the architecture of the user-facing system. What’s the data flow to serve the site? Make sure you include a system architecture diagram. There are lots of good diagramming tools available.

Dev-Time Architecture

After that, walk through the internal/developer perspective on this system. How does data flow from source code on a dev machine to the running system you previously covered?

Key Tradeoffs

Another thing you should write about is some of the key tradeoffs you’ve made.

  • What alternatives did you consider?
  • What benefits(s) could those alternatives offer? And...
  • Why did you finally choose what you did? (Note: Choosing something because of expediency can be a perfectly acceptable answer — maybe even an admirable one!)

Next Steps

Now that you’ve finished building this system, what opportunities would you pursue next, if you had more time?

  • What “features” would you add?
  • What refactoring would you do?
  • What tooling would you build?
  • For all of these, why?

Lessons Learned

Finally, describe some of the key things you’ve learned by going through this process. This is really important. You have to be able to continually learn new things, to be hirable. 

It is NOT a sign of weakness or incompetence to research and/or try things that don’t work out. In fact, that is absolutely essential to every technical job. And it’s critical to be able to share what you learn with others on your team.

  • If you were to start this project from scratch, today, how much faster would it go? What would you skip or do differently?
  • What is your biggest regret about the system you built?
  • What is your biggest regret about this challenge project?

Present (Video Conversation)

I wasn’t quite sure what to call this section. “Chat” seemed too unfocused. “Defend” seemed too combative. Other ideas I considered include “Interview”, “Talk”, and “Converse”.  But in the end, I think that “Present” captures the idea that I want you to verbally describe the project to me and answer a few questions about it.

Yes, I would like to have some conversations with people who finish this project! I’d like to jump on a video call to talk with you about the project you did. Have you explain some things to me in a pseudo-mock-interview-style thing. Just to talk things through in real-time, based on your understanding.

Now, I might have to limit this offer, somewhat, if I get overwhelmed. But I will commit to doing a ~20 minute call with at least the first 15 people who finish this challenge by the deadline. And if we need a bit of extra time on our call to overcome language challenges or just because we’re having such a good conversation, that’s fine, too. I’m pretty friendly, and I don’t want to scare you off.  :-)

In the end, if I simply finish that call with the sense that you do pretty much understand what you built, that’s good enough for me. So don’t stress about it.

But this situation — of presenting some technical thing to others — is a very common and important one. Sure, this is somewhat similar to a job interview, where you need to give the interviewer confidence in your skills. But this is also just like a chat with your boss about the project you’re working on; or with your coworker about your part of the shared project; or with the people who report to you when you’re explaining what you’ve designed so they can help build it. Communication is a critical skill, even for technical roles.

Submit Your Project

When you’re all done the Building and Explaining stuff, above, then pop back onto our Discord (you should be pretty familiar with it, by then) and post the link to your site on our #gcp-resume-challenge channel. And tag me so I can see it and so we can schedule a call to do the Presenting bit.

You must submit your finished site (Build) and write-up (Explain) by September 30, 2021.  Our subsequent video call (Present) must be finished by October 15.

I’m really looking forward to seeing your project and having a chat with you about it!

Challenge Skills Inventory

OK. By the end of this challenge, you will have accumulated a lot of honest-to-goodness job-relevant skills. Things you could list on your resume site. Things you could talk through in an interview or a project discussion with your boss. Things you have enough sense about to understand technical blogs or news reports about. Don’t falsely claim to be a world-class expert, or anything, but do feel good about these valuable real-world skills. Let me know if you feel I’ve missed any key ones, but here are some that stand out to me.


Cloud Dictionary

Get the Cloud Dictionary of Pain
Speaking cloud doesn’t have to be hard. We analyzed millions of responses to ID the top terms and concepts that trip students up. In this cloud guide, you’ll find succinct definitions of some of the most painful cloud terms.


Conclusion

Interested? Great! Then feel free to start whenever you’re ready and I’ll see you over on our Discord! The #CloudGuruChallenge is FREE and available to everyone! Remember that you must complete your submission by September 30, 2021.

Keep being awesome, Cloud Gurus!

FAQs

Can I only do this if I want to get a (new) job?

Absolutely NOT!  This challenge does happen to be valuable to job searchers, but this is because the skills being practiced are extremely relevant to virtually all technical roles. Sure, some roles will focus more on this than others, but if you are (maybe already) working as a dev, or a PM, or a sysadmin, or whatever, then you can get value from both (1) building a system like this, hands-on, but also (2) practicing your written and verbal communication skills.  No one can succeed in a technical job (claimed with many nines of reliability) unless they have both technical and communication skills.

If I do want a (new) job, will this guarantee me one?

No, I can’t make any such promise.  But I can say with conviction that if you are able to build, explain, and present this project, you are light-years ahead of the vast majority of other applicants.

Tips

  • You don't need to build this all at once. Start small with something (anything) basic, and keep adding things incrementally.
  • Feel free to DO things in the console, to get the feel for how to connect everything. The Console UI surfaces lots of good information and suggestions.
  • Feel free to NOT do things in the console: use the CLI and keep a file with all the commands you run so you can repeat them. You could choose to work out a lot of pieces for this project in ACG’s Cloud Playground before you set them up in your own GCP project.
  • When you do go into your own project, try to use a new GCP account with free trial credits, if you can. This won’t eliminate all costs—especially longer-term—but it will definitely help.
  • Start by getting connected on Discord. Don’t wait until you’re struggling.

Advance your career in the cloud

Join A Cloud Guru and get access to courses, hands-on labs, quizzes, and learning paths, which take you step-by-step from novice to guru in your chosen area of the cloud. Get a 7-day free trial or check out our free courses.