Skip to main content

Experience

The Experience interface defines the structure for work experience entries.

Type definition

export interface Experience {
  company: string;
  position: string;
  location: string;
  startDate: string;
  endDate: string;
  isCurrentRole: boolean;
  description: string[];
  technologies: string[];
}

Properties

company
string
required
Name of the company or organization.
position
string
required
Job title or position held (e.g., “Senior Software Engineer”, “Product Manager”).
location
string
required
Location of the job (e.g., “Seattle, WA”, “Remote”).
startDate
string
required
Start date of employment. Typically formatted as “MMM YYYY” (e.g., “Jan 2023”).
endDate
string
required
End date of employment or “Present” for current positions. Formatted as “MMM YYYY” or “Present”.
isCurrentRole
boolean
required
Flag indicating if this is a current position. Set to true when endDate is “Present”.
description
string[]
required
Array of bullet points describing responsibilities, achievements, and impact. Each string is rendered as a separate bullet point.
technologies
string[]
required
Array of technologies, tools, and frameworks used in this role.

Example

{
  "company": "TechCorp Inc",
  "position": "Senior Full Stack Engineer",
  "location": "San Francisco, CA",
  "startDate": "Mar 2021",
  "endDate": "Present",
  "isCurrentRole": true,
  "description": [
    "Led development of microservices architecture serving 1M+ daily active users",
    "Reduced API response time by 40% through optimization and caching strategies",
    "Mentored team of 5 junior engineers and conducted code reviews"
  ],
  "technologies": ["React", "Node.js", "PostgreSQL", "AWS", "Docker"]
}

Project

The Project interface defines the structure for project entries, showcasing personal or professional projects.

Type definition

export interface Project {
  name: string;
  role: string;
  startDate: string;
  endDate: string;
  description: string[];
  technologies: string[];
  link: string;
}

Properties

name
string
required
Name of the project.
role
string
required
Your role in the project (e.g., “Lead Developer”, “Creator”, “Contributor”).
startDate
string
required
Project start date. Typically formatted as “MMM YYYY” (e.g., “Jun 2022”).
endDate
string
required
Project end date or “Present” for ongoing projects. Formatted as “MMM YYYY” or “Present”.
description
string[]
required
Array of bullet points describing the project, its purpose, and key achievements. Each string is rendered as a separate bullet point.
technologies
string[]
required
Array of technologies, tools, and frameworks used in the project.
URL to the project (GitHub repository, live demo, etc.). Can be an empty string if no link is available.

Example

{
  "name": "DevTools Dashboard",
  "role": "Creator & Lead Developer",
  "startDate": "Jan 2023",
  "endDate": "Dec 2023",
  "description": [
    "Built a real-time analytics dashboard for developer productivity metrics",
    "Integrated with GitHub API to track commits, PRs, and code review metrics",
    "Gained 500+ stars on GitHub and featured in developer newsletters"
  ],
  "technologies": ["React", "TypeScript", "Chart.js", "Firebase"],
  "link": "https://github.com/username/devtools-dashboard"
}

Usage notes

  • Both Experience and Project use similar date formatting for consistency
  • The description arrays should contain concise, achievement-focused bullet points
  • technologies arrays help with resume parsing and keyword matching for ATS systems
  • For Experience, use isCurrentRole: true and endDate: "Present" together for current positions

Build docs developers (and LLMs) love