Cherry.CV (cherry v0.6.0)

Copy Markdown View Source

The CV: the employer-shaped projection of the portfolio (DESIGN.md §4).

Strictly a projection — the same entries the timeline shows, curated by their cv: blocks and ordered by weight, never a second dataset. Skills are derived from tags across positions and projects, weighted by duration and recency, each linking back to its story page — a paper CV claims; this one shows.

today comes from the build options (time is an input, ADR 0005), so open-ended ranges and the freshness line stay deterministic.

Summary

Functions

Projects the portfolio onto the CV, or nil without a profile — a CV without a person makes no sense.

Types

t()

@type t() :: %Cherry.CV{
  education: [Cherry.Portfolio.Education.t()],
  oss: [Cherry.Portfolio.OpenSource.t()],
  positions: [Cherry.Portfolio.Position.t()],
  profile: Cherry.Portfolio.Profile.t(),
  projects: [Cherry.Portfolio.Project.t()],
  skills: [Cherry.CV.Skill.t()],
  talks: [Cherry.Portfolio.Talk.t()],
  updated: Date.t()
}

Functions

project(portfolio, today)

@spec project(Cherry.Portfolio.t(), Date.t()) :: t() | nil

Projects the portfolio onto the CV, or nil without a profile — a CV without a person makes no sense.

Entries opt in via cv.include (education is included by default: leaving a degree off a CV is the exception, not the rule).