Skip to content

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

@bobbyonmagic

Description

@bobbyonmagic

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions