Job

A job is a part of the core and stored in ./core.ppl of the workspace. It tracks the basic requirements for a position within an organization, primarily for performance management purposes. It also defines requirements within the career matrix.

Fields

The following arguments are supported:

  • name - (Required) The human-readable name of the job - String
  • requirements - (Optional) A map of requirements by category for this job. See the career matrix topic for a full description. This field's properties are dependent on what is defined there.

Examples

Minimal

// since there are no requirements, there should be no career matrix either.
job manager {
  name: "Engineering Manager"
}

member alex_rivera {
  first_name: "Alex"
  last_name: "Rivera"
  job: manager
}

Full

job software_engineer_1 {
  name: "Software Engineer I"
  requirements: {
    technical: {
      implementation: "Implements well-defined features with guidance"
      code_quality: "Writes maintainable code following team standards"
      code_review: "Participates in code reviews and bug fixes"
      testing: "Learns testing best practices"
    }
    project_execution: {
      delivery: "Delivers assigned tasks within expected timeframes"
      clarity: "Seeks clarification when requirements are unclear"
      updates: "Updates progress regularly"
      process: "Follows established development processes"
    }
    problem_solving: {
      debugging: "Debugs and resolves basic technical issues"
      impact: "Understands how their code impacts immediate dependencies"
      decomposition: "Learns to break down problems into manageable tasks"
    }
    collaboration: {
      participation: "Actively participates in team meetings"
      communication: "Communicates blockers and progress clearly"
      feedback: "Receives and implements feedback effectively"
      teamwork: "Works well with immediate team members"
    }
    growth: {
      learning: "Demonstrates eagerness to learn new technologies"
      initiative: "Takes initiative in skill development"
      mentorship: "Seeks and accepts mentorship"
      domain: "Builds understanding of product domain"
    }
  }
}

matrix software_engineering {
  name: "Software Engineering"
  categories: {
    technical: {
      name: "Technical"
      description: "Core technical and architectural capabilities"
    }
    project_execution: {
      name: "Project Execution" 
      description: "Delivery and implementation of technical work"
    }
    problem_solving: {
      name: "Problem Solving"
      description: "Technical problem solving and system thinking"
    }
    collaboration: {
      name: "Collaboration"
      description: "Working with others and leadership"
    }
    growth: {
      name: "Growth and Learning"
      description: "Personal and professional development"
    }
  }
  jobs: [
    software_engineer_1,
  ]
}

member kevin_osei {
  first_name: "Kevin"
  last_name: "Osei"
  job: software_engineer_1
}