{
  "purpose": "Manual reference example for adapting hiring criteria. This is not an Intervy import file.",
  "role": "Software Engineer",
  "levels": ["Junior", "Mid", "Senior"],
  "competencies": [
    {
      "name": "Code quality",
      "guidelines": {
        "Junior": "Implements a small change with clear names and tests for stated inputs and edge cases, using review feedback.",
        "Mid": "Refactors a module without changing its behavior, adds regression tests, and explains the maintenance trade-offs in review.",
        "Senior": "Defines code boundaries for a multi-team change, compares migration options, and proposes checks that protect existing consumers."
      }
    },
    {
      "name": "Debugging",
      "guidelines": {
        "Junior": "Reproduces a reported fault, gathers relevant logs, and explains the failing step before asking for help.",
        "Mid": "Forms competing explanations for a production fault, tests them against evidence, and verifies the fix with a regression check.",
        "Senior": "Traces a fault across service boundaries, coordinates containment, and proposes monitoring that would expose the same failure earlier."
      }
    },
    {
      "name": "System design",
      "guidelines": {
        "Junior": "Explains how a request moves through an existing service and identifies where validation and data storage occur.",
        "Mid": "Designs a service change, compares storage and interface options, and describes failure handling for its dependencies.",
        "Senior": "Designs a change spanning teams, makes capacity and reliability assumptions explicit, and outlines rollout and rollback decisions."
      }
    },
    {
      "name": "Communication",
      "guidelines": {
        "Junior": "Describes completed work and a blocker with enough context for a teammate to suggest a next step.",
        "Mid": "Writes a decision note comparing options, states a recommendation, and answers questions from affected colleagues.",
        "Senior": "Explains a disputed technical decision to different audiences, records their constraints, and documents the agreed trade-off and remaining risk."
      }
    },
    {
      "name": "Delivery ownership",
      "guidelines": {
        "Junior": "Breaks a scoped task into steps, reports a missed assumption promptly, and confirms completion against agreed acceptance criteria.",
        "Mid": "Plans a feature with dependencies, flags delivery risks early, and renegotiates scope when evidence changes the estimate.",
        "Senior": "Sequences a multi-team delivery, assigns dependency owners, and defines release checkpoints with explicit criteria for delaying the launch."
      }
    }
  ]
}
