Interview Insights · Cloud Engineer
How I Spot a Copy-Pasted Cloud Engineer Project in Minutes
Quick summary — Copied cloud projects
A copied cloud project is not a crime, but presenting it as your own design is easy to detect and hard to recover from. Most cloud portfolio projects start from a tutorial, and that is fine. The problem is when nothing in the project reflects the candidate's own decisions. I look for tutorial default values, committed state files and wide-open security groups, then ask why each choice was made. Real builders answer with what broke and what they changed. Copiers answer with what the tutorial said, or with silence.
In this guide you will learn:
- The repo clues that suggest a cloud project was copied
- The why questions I ask about CIDR blocks, IAM and cost
- How real builders answer differently from tutorial followers
- Concrete changes that make a tutorial project your own
- A checklist to audit your own cloud repo before interviews
SECTION 01The repo clues I notice in the first two minutes
When a cloud candidate shares a GitHub link, I do not read every file. I skim for a few signals that tell me whether the person made decisions or followed steps. Tutorials leave fingerprints: default names, the same region the tutorial author used, a state file committed by accident, and security rules that were 'temporary' in the video and never tightened.
None of these alone proves copying. Plenty of people learn from tutorials, and I did too. But when several of these clues appear together and the candidate cannot explain any of them, the picture is clear. Here are the clues and what they usually mean.
| Repo clue | Where I see it | What it often means | What a builder would have |
|---|---|---|---|
| terraform.tfstate committed | Root of the repo | Did not know state holds secrets and IDs | Remote backend and a .gitignore |
| Tutorial default names | my-bucket, demo-vpc, example-app | Values never changed from the source | Names tied to their own project |
| SSH open to the world | cidr_blocks = 0.0.0.0/0 on port 22 | Copied a quick-start security group | Own IP only, or SSM Session Manager |
| Admin policy on everything | AdministratorAccess attached to a role | Never thought about permissions | Scoped policy for the actual need |
my-aws-project/
main.tf <- resource "aws_s3_bucket" "my-bucket"
terraform.tfstate <- committed, contains resource IDs
terraform.tfstate.backup
README.md <- "In this tutorial we will..."
security group in main.tf:
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}photo-share-infra/
backend.tf <- S3 backend with state locking
network.tf
compute.tf
iam.tf
variables.tf
.gitignore <- *.tfstate, .terraform/, *.tfvars
README.md <- why I chose each part, what it
cost, what broke and how I fixed it
No port 22 at all: instances are reached
through SSM Session Manager.
The most telling file is often the README. A tutorial README describes steps: 'first we create a VPC, then we add subnets'. A builder's README describes decisions: 'I used two private subnets so the app survives one AZ failing, and I dropped the NAT Gateway in dev to save cost'.
SECTION 02The why questions that expose a copied VPC or IAM setup
After the skim, I pick two or three concrete values from the code and ask why. Network ranges and permissions are my favourites, because tutorials almost always use the same values and almost never explain them. If you built the VPC yourself, you made choices about CIDR sizes and subnet placement. If you copied it, those numbers are just numbers.
The question is never 'what is a CIDR block?'. It is 'why did you pick this one?'. A builder may say 'I copied the tutorial range but I understand it gives me this many addresses'. That is fine and honest. A copier says 'that is the standard'.
| Value in code | My question | Copied answer | Builder answer |
|---|---|---|---|
| VPC 10.0.0.0/16 | Why a /16, and could it clash with anything? | It is the standard | Room to grow; I checked it won't overlap office VPN |
| Subnet 10.0.1.0/24 | How many usable IPs does this give you? | 256 | 251, AWS reserves five in every subnet |
| Public subnet for app | Why are app servers public? | So they work | Mistake; moved them private behind the ALB |
| AdministratorAccess role | What does the app actually need? | Full access is easier | Only GetObject and PutObject on one bucket |
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
// Works in the demo. Means the app can delete
// every resource in the account if it is compromised.{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AppReadWriteUploads",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::photo-share-uploads-dev/*"
},
{
"Sid": "AppListUploads",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::photo-share-uploads-dev"
}
]
}
Notice the scoped policy splits ListBucket from the object actions. ListBucket applies to the bucket ARN, while GetObject and PutObject apply to objects under it, shown with the /* suffix. A candidate who wrote this themselves usually remembers the first time it failed with AccessDenied because they mixed the two up. That small memory is exactly the kind of detail that proves ownership.
SECTION 03Making a tutorial cloud project genuinely yours
If your current cloud project is mostly a tutorial, you do not need to throw it away. You need to add decisions. The fastest way is to change three things the tutorial did not do, break something on purpose, and write down what you learned. Each of those becomes a story you can tell in the interview.
Good changes are ones that force you to understand the code: moving state to a remote backend, tightening security groups, splitting environments, adding cost controls or replacing SSH with Session Manager. Each one will break something along the way, and fixing it is what makes the project yours.
| Change to make | What you will learn | What may break | Interview story it gives you |
|---|---|---|---|
| Move state to S3 with locking | Why state matters and how teams share it | Init fails until the backend bucket exists | How I set up shared state safely |
| Replace port 22 with SSM | Instance profiles and the SSM agent | No access until the role is attached | Why I removed SSH entirely |
| Add a dev and prod split | Variables, workspaces or separate folders | Name clashes between environments | How I kept environments apart |
| Add a budget alarm | AWS Budgets and cost visibility | Nothing, but you see real spend | What the project actually cost |
terraform {
required_version = ">= 1.5"
backend "s3" {
bucket = "photo-share-tfstate-dev"
key = "infra/terraform.tfstate"
region = "ap-south-1"
dynamodb_table = "photo-share-tf-locks"
encrypt = true
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
# Then: terraform init -migrate-state
# and delete the local terraform.tfstate from git history.# Terraform
.terraform/
*.tfstate
*.tfstate.*
crash.log
*.tfvars
*.tfvars.json
override.tf
override.tf.json
# Keep the lock file so provider versions are pinned
!.terraform.lock.hcl
# Never commit credentials
.aws/
*.pem
One more step matters: if your state file or any access key was ever committed, removing it in a new commit is not enough, because it stays in git history. Rotate any exposed keys in IAM and rewrite or recreate the repository. Mentioning that you did this tells an interviewer you understand real security hygiene.
Finally, write a short README section called 'Decisions and mistakes'. Three bullet points are enough. It is the first thing I look for, and it turns a five-minute deep dive into a conversation you control.
SECTION 04Audit your cloud repo before you share it
Run through this audit before you put a cloud project link on your resume. It takes an evening and closes most of the gaps an interviewer would find in the first five minutes.
SECURITY
[ ] No *.tfstate files in the repo or its history
[ ] No access keys, .pem files or secrets anywhere
[ ] No security group with port 22 or 3389 open to 0.0.0.0/0
[ ] No Action "*" with Resource "*" in any policy
OWNERSHIP
[ ] Resource names match my project, not the tutorial
[ ] Region choice is deliberate (and I can say why)
[ ] At least three changes the tutorial did not have
DOCUMENTATION
[ ] README explains decisions, not just steps
[ ] 'Decisions and mistakes' section exists
[ ] Rough monthly cost is written downAsk a friend to open your repo and pick ANY
three values. For each, answer in under a minute:
1. Why this value?
2. What happens if I change it?
3. Did it ever break? How did you fix it?
Good targets for your friend:
- the VPC and subnet CIDR blocks
- the instance type
- any IAM action list
- the ASG min and max sizes
- the backup or retention settings
If you cannot answer one, fix the project or
learn that part before the interview.Use this structure when you describe the project:
"I started from a tutorial to learn the basics of
_______. Then I changed three things on my own:
1. __________ because __________
2. __________ because __________
3. __________ because __________
The hardest problem was __________. I found it by
__________ and fixed it by __________.
It costs about ____ a month to run, so I keep it
destroyed when I am not using it."
SECTION 05Ways to present a cloud project that holds up
How you talk about a project matters as much as the code. These habits keep a deep dive in your favour.
- Admit the tutorial early — Saying where you started removes the biggest risk in the conversation and lets you focus on what you changed.
- Lead with a decision — Open with one choice you made and why, such as removing SSH in favour of Session Manager, instead of listing services.
- Know your numbers — Be ready to explain your CIDR sizes, instance types and scaling limits, because these are the values interviewers pick.
- Show the destroy habit — Saying you run terraform destroy when you are not using the project shows cost awareness and confidence in your code.
- Keep one failure story ready — A short story about an AccessDenied error or a broken route that you traced and fixed is the strongest proof of ownership.
SECTION 06Interview Q&A — Copied cloud projects
Q1How many usable IP addresses are in a /24 subnet on AWS?
A /24 has 256 addresses, but AWS reserves five in every subnet: the network address, the VPC router, the DNS address, one reserved for future use and the broadcast address. That leaves 251 usable addresses. Knowing the reserved five is a small detail that shows you have actually sized subnets.
Q2Why should Terraform state not be committed to Git?
State maps your code to real resource IDs and can contain sensitive values such as passwords or keys in plain text. Committing it exposes those values and causes conflicts when two people apply changes. Teams use a remote backend, such as S3 with locking, so state is shared, encrypted and changed by one person at a time.
Q3How would you give an EC2 instance access to an S3 bucket?
I would create an IAM role with a policy scoped to the specific bucket and actions the app needs, then attach it to the instance through an instance profile. The app gets temporary credentials automatically, so no access keys are stored on the server. I would avoid AdministratorAccess or wildcard actions.
Q4How can you reach a private EC2 instance without opening port 22?
I would use AWS Systems Manager Session Manager. The instance needs the SSM agent, which is preinstalled on many Amazon Linux images, and an instance profile with the AmazonSSMManagedInstanceCore policy. It also needs a path to the SSM endpoints, through a NAT Gateway or VPC interface endpoints. Then I can open a shell from the console or CLI with no inbound rules at all, and sessions can be logged.
Q5What would you change first in a tutorial-based AWS project?
I would move Terraform state to a remote backend with locking, remove any security group rule that opens SSH to the world, and scope IAM policies to what the app actually uses. Those three changes remove the biggest risks and force me to understand how the pieces connect.
SECTION 07Test yourself — Copied cloud projects quiz
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 08Frequently asked questions
Can interviewers tell if a cloud project is copied from YouTube?
Often, yes. Default resource names, committed state files, wide-open security groups and a README that reads like tutorial steps are common clues. The deciding factor is whether you can explain why each value was chosen.
Is it okay to use a tutorial for my AWS portfolio project?
Yes, as a starting point. Say so openly, then add changes of your own such as remote state, scoped IAM and cost controls, and be ready to explain what broke and how you fixed it.
What cloud projects look good on a fresher resume?
Projects that show decisions: a multi-AZ web app with an ALB and Auto Scaling, a static site on S3 with CloudFront, or a Terraform-built VPC with private subnets. The depth of your explanation matters more than the project idea.
How do I remove a committed AWS key or state file from GitHub?
First rotate or deactivate any exposed access keys in IAM, because the secret may already be copied. Then rewrite the repository history with a tool such as git filter-repo, or create a fresh repository, and add the files to .gitignore.
What questions do interviewers ask about a Terraform project?
Expect questions on where state is stored, how you would roll back a change, why you chose specific CIDR blocks or instance types, how IAM permissions are scoped and what the setup costs to run.
Is there a course that covers Cloud Engineer interview answers?
Yes. Uncodemy's Cloud Computing Training Course in Noida (classroom and online) includes live projects, one-to-one mock interviews and resume reviews, so you practise Cloud Engineer interview answers with trainer feedback before the real interview. You can book a free demo class from this page to see how the sessions work.
SECTION 09Related reads
Classroom & online · Noida
Build cloud projects you can defend in any round
Our Cloud Computing Training Course includes guided AWS and Terraform projects where you make and document your own design decisions, plus project deep-dive mock interviews.
Talk to a counsellor for current fees- Guided Terraform projects
- IAM and VPC design labs
- Project deep-dive mocks
- Weekday & weekend batches