# yaml-language-server: $schema=https://unpkg.com/engineercv@latest/lib/schema.json

# > Advanced merging
# Demonstrates advanced merging options for lists and objects using special helpers.

output: ../out/{{ source.name }}.pdf

# > Custom merge behavior
# You can customize the merging behavior from imports or variants merging. 
# Use `{{ remove "value"}}` as list item, to remove this item if it occurs in the other list instance.
# Use `{{ rest }}` at one position in one list, to specify that the other list should be inserted at this position.
# Use `{{ merge "concat" }}`, `{{ merge "uniques" }}`, or `{{ merge "replace" }}` as list item in one list, to specify how the two lists should be merged.
# In a list of nested objects, add a `$id` property in an item in both lists to specify that those two items should be merged together.

variants:
  advanced-edits:
    - skills:
        - $id: languages
          keywords:
            - Java
            - Python
            - "{{ remove 'JavaScript' }}"
      work:
        - $id: company1
          position: Great Software Engineer
          highlights:
            - "{{ remove 0 }}"
            - Before
            - "{{ rest }}"
            - After
        - $id: company2
          position: Awesome Software Engineer
        - "{{ remove 'company3' }}"


basics:
  name: John Doe

title:
  items:
    - "{{ email 'john.doe@outlook.com' }}"
    - "{{ phone '+1 123-(456) 7890' }}"
    - "{{ github 'johndoe' }}"
    - "{{ linkedin 'johndoe' }}"
  summary: |
    Experienced software engineer with a passion for building scalable web applications. Proficient in JavaScript, React, and Node.js. Strong problem-solving skills and a commitment to delivering high-quality code.

skills:
  - name: Languages
    $id: languages
    keywords:
      - JavaScript
      - TypeScript
  - name: Frameworks
    keywords:
      - React
      - Node.js
      - Express
  - name: Tools & Technologies
    keywords:
      - Git
      - Docker
      - AWS

work:
  - position: Senior Software Engineer
    $id: company1
    name: Tech Company
    location: Karlsruhe, Germany
    startDate: 2021/12
    highlights:
      - Item 1
      - Item 2
      - Item 3
  - position: Software Engineer
    $id: company2
    name: Tech Company
    location: Karlsruhe, Germany
    startDate: 2020/01
    endDate: 2021/12
    highlights:
      - Item 1
      - Item 2
      - Item 3
  - position: Junior Developer
    $id: company3
    name: Startup Inc.
    startDate: 2018/06
    endDate: 2019/12
    highlights:
      - Item 1
      - Item 2
      - Item 3