Milestone map
Milestone map
3 milestones
Provision a small stack with Terraform
1–2 weeks
Use Terraform to create a small real stack. Include a network, a compute service and storage. Keep state in a remote backend with locking. No clicking in the console, even to check.
Proof required
Link the Terraform code, the remote state configuration, and a `terraform plan` showing no changes after apply.
What gets checked
- Remote state with locking
- Plan is clean after apply
- Variables used instead of hard-coded values
Common mistakes
- Local state file committed to git
- Creating resources in the console
- Hard-coded credentials
Powstik Guide
A small stack defined entirely in code.
Steps
- Set up a remote backend first.
- Write the network, then compute, then storage.
- Use variables and outputs.
- Apply, then plan again to confirm no drift.
Template
Stack checklist [ ] Remote state backend with locking [ ] No credentials in code [ ] variables.tf and outputs.tf [ ] Clean plan after apply [ ] Nothing created in the console
What gets sent back
- State committed to git.
- Console-created resources.
- Credentials in code.
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Check the backend block
- Check for secrets in code
- Check the clean plan output
You'll sign in first, then come straight back here.
Split into modules and environments
2–3 weeks
Refactor the code into reusable modules and create separate staging and production environments. Run plan and apply through CI. This is what makes infrastructure repeatable.
Proof required
Link the modular code, two environment configurations, and CI runs showing plan on pull requests and apply on merge.
What gets checked
- Reusable modules with inputs and outputs
- Separate state per environment
- Plan and apply run in CI
Common mistakes
- Copy-pasted environments instead of modules
- Shared state between environments
- Applying from a laptop
Powstik Guide
Modular infrastructure with two environments.
Steps
- Pull repeated resources into a module.
- Create staging and production folders or workspaces.
- Give each environment its own state.
- Run plan on pull requests, apply on merge.
Template
Repo layout modules/ network/ service/ envs/ staging/ production/ CI: plan on PR → apply on merge
What gets sent back
- Copy-pasted environments.
- Shared state.
- Laptop applies.
Resources
Foundationstart here
Depthgo deeper
Masteryfor the dedicated
What a verifier looks for
- Check module structure
- Check state separation
- Check CI runs
You'll sign in first, then come straight back here.
Handle drift and defend the design
1 week
Have a reviewer make an unmanaged change in the console. Detect the drift with a plan and fix it through code. Then defend your module design to them.
Proof required
Submit the drift plan output, the fix, and review notes (250+ words) with the reviewer's background and challenges.
What gets checked
- Drift detected with plan, not by eye
- Fix made through code
- Reviewer works with infrastructure as code
Common mistakes
- Fixing drift by hand in the console
- Reviewer without IaC experience
- No design change after review
Powstik Guide
A drift drill and a reviewed module design.
Steps
- Ask the reviewer to change one resource by hand.
- Run plan and read what changed.
- Decide: revert it, or adopt it into code.
- Defend your module boundaries to them.
Template
Drift drill Change made by reviewer: Plan output summary: Decision: revert / adopt Fix commit: Review session log Date: Duration: Reviewer name: Reviewer role and experience: Challenge 1 (module design): What they asked: My answer: Challenge 2: What they asked: My answer: Change I made after the session:
What gets sent back
- Drift fixed by hand.
- A reviewer without IaC experience.
- No change after review.
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Read the drift plan
- Check the fix commit
- Confirm reviewer background
You'll sign in first, then come straight back here.