The-DevOps-Daily / The-DevOps-Daily/devops-daily

New feature: DevOps Challenges (learn by doing, submit PRs)

Open
#1,079 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.1k
Forks
392
Avg merge
5h 8m
Merged PRs (30d)
121

Description

Overview

Add a new "DevOps Challenges" feature where users learn by completing real-world tasks and submitting solutions as PRs, rather than following step-by-step guides.

Concept

Unlike our guided exercises (step-by-step instructions), challenges give users an open-ended task and let them figure out the solution. This simulates real-world engineering work where you get a ticket, not a tutorial.

How it Works

  1. Each challenge has a template repository on GitHub (DevOps Daily org)
  2. User forks the template repo
  3. Template includes a README with the challenge brief, acceptance criteria, and hints
  4. User implements their solution and submits a PR to their fork
  5. Automated CI checks validate the solution (tests, linting, infrastructure checks)
  6. Optional: AI-powered code review on the PR
  7. User earns a badge/certificate for completed challenges

Challenge Examples

  • "Fix this broken CI/CD pipeline" (template has a failing GitHub Actions workflow)
  • "Containerize this application" (template has a raw Node.js app, no Dockerfile)
  • "Set up monitoring for this service" (template has an app but no observability)
  • "Write Terraform for this architecture" (template has an architecture diagram, no IaC)
  • "Debug this Kubernetes deployment" (template has broken K8s manifests)
  • "Secure this application" (template has intentional security issues)
  • "Optimize this Docker image" (template has a 2GB image that should be 200MB)

Difficulty Levels

  • Starter: single-tool tasks (write a Dockerfile, fix a YAML syntax error)
  • Intermediate: multi-step tasks (CI/CD pipeline + deployment + monitoring)
  • Advanced: architecture-level tasks (design and implement a full solution)

Technical Implementation

On devops-daily.com
  • New content type: content/challenges/*.json with metadata (title, description, difficulty, repo URL, acceptance criteria)
  • Challenge listing page at /challenges
  • Challenge detail page showing brief, hints, submission link
  • Progress tracking (which challenges completed)
  • Leaderboard (optional)
Template Repositories
  • GitHub org repos named challenge-*
  • Each repo has:
    • README.md with the challenge brief
    • .github/workflows/validate.yml that tests the solution
    • tests/ directory with acceptance tests
    • Starter code (the broken/incomplete thing to fix)
Automated Validation
  • GitHub Actions in each template repo
  • Runs when a PR is opened
  • Checks if the solution passes all acceptance criteria
  • Posts a comment with results (pass/fail per criteria)

Integration with Existing Features

  • Challenges can reference related exercises, quizzes, and blog posts
  • Completing a challenge could unlock achievements in the (future) DevOps Daily Pro platform
  • Social sharing: "I completed the Kubernetes debugging challenge on DevOps Daily"

Implementation Phases

Phase 1: Foundation
  • JSON schema for challenges
  • Challenge listing and detail pages
  • Create 3-5 template repos with CI validation
  • /create-challenge skill for content generation
Phase 2: Engagement
  • Completion tracking (localStorage initially, then user accounts)
  • Badges/certificates for completed challenges
  • Social sharing
  • Difficulty progression (unlock harder challenges)
Phase 3: Community
  • Leaderboard
  • User-submitted challenges
  • AI code review on submissions
  • Team challenges (group submissions)

Why This Matters

Tutorial hell is real. Engineers watch videos and follow guides but struggle when faced with a blank editor and a real problem. Challenges bridge that gap by providing the problem without the solution, forcing active learning.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by defining the schema in content/challenges/.json and mapping the /challenges and challenge detail pages. Then review the proposed challenge- template repositories, including README.md, .github/workflows/validate.yml, and tests/. Done requires the Phase 1 foundation: schema, listing and detail pages, 3–5 validated template repositories, and the /create-challenge skill.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, json, kubernetes, node.js, terraform, typescript, yaml
Domain
ci-cd, content, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.