Skip to main content
Work experience entries showcase your professional journey and career progression. They’re stored in src/content/experience/ as markdown files with frontmatter defining company metadata.

Experience Collection Schema

The experience collection is defined in src/content.config.ts with the following schema:
company
string
required
The name of the company or organization (e.g., “Teya”, “Yoyo Group”)
website
string (URL)
required
The company’s website URL (e.g., “https://www.teya.com”)
role
string
required
Your job title at the company (e.g., “Senior Software Engineer”)
period
string
required
The time period you worked there (e.g., “January 2023 - November 2024”)
order
number
required
Display order for sorting (lower numbers appear first, typically newest jobs have lower numbers)

Adding Work Experience

1

Create an experience file

Navigate to src/content/experience/ and create a new .md file. Use the company name in kebab-case:
touch src/content/experience/company-name.md
2

Add experience frontmatter

Start with YAML frontmatter containing all required fields:
---
company: 'Teya'
website: 'https://www.teya.com'
role: 'Senior Software Engineer'
period: 'January 2023 - November 2024'
order: 2
---
3

List responsibilities and achievements

Below the frontmatter, use a bulleted list to describe your key responsibilities and achievements:
- Transitioned to Teya following the acquisition of Yoyo Group and led the 
  migration of Yoyo's legacy systems to Teya's AWS cloud platform.
- Designed Kubernetes infrastructure code using **Helm charts**, **Tilt**, 
  **Tekton**, and **ArgoCD (CI/CD)**.
- Built and integrated Python libraries for cloud observability.
4

Preview your experience section

Run your development server to see the experience entry:
npm run dev
Experience entries typically appear on your about or resume page.

Understanding the Order Field

The order field controls the display sequence of your work experience. Lower numbers appear first:
order: 1  # Most recent position
order: 2  # Second most recent
order: 3  # Third most recent
This allows you to display your work history in reverse chronological order (most recent first), which is the standard format for resumes and portfolios.

Real-World Examples

---
company: 'Teya'
website: 'https://www.teya.com'
role: 'Senior Software Engineer'
period: 'January 2023 - November 2024'
order: 2
---

- Transitioned to Teya following the acquisition of Yoyo Group and led the 
  migration of Yoyo's legacy systems to Teya's AWS cloud platform.
- Designed Kubernetes infrastructure code using **Helm charts**, **Tilt**, 
  **Tekton**, and **ArgoCD (CI/CD)**, delivering a resilient, high-performing 
  cloud-based system.
- Built and integrated Python libraries for cloud observability, enhancing 
  applications with **telemetry data**, **alert mechanisms**, and 
  **Prometheus-powered Grafana dashboards** for comprehensive monitoring.
- Integrated the company's centralized merchant database with loyalty domain 
  apps, fostering an interconnected ecosystem for improved customer experience.
- Spearheaded the integration of the company's transaction processor with 
  loyalty apps, utilizing **Kafka** and Kubernetes autoscaling to handle up 
  to **2 million transactions daily**.
---
company: 'Tech Startup'
website: 'https://www.techstartup.com'
role: 'Full Stack Developer'
period: 'June 2021 - December 2022'
order: 3
---

- Developed and maintained full-stack web applications using **React**, 
  **Node.js**, and **PostgreSQL**.
- Collaborated with product and design teams to implement new features 
  based on user feedback and business requirements.
- Improved application performance by 40% through code optimization and 
  database query improvements.
- Mentored junior developers and conducted code reviews to maintain code 
  quality standards.
- Implemented CI/CD pipelines using **GitHub Actions** and **Docker** for 
  automated testing and deployment.
---
company: 'Yoyo'
website: 'https://www.yoyowallet.com'
role: 'Backend Engineer'
period: 'March 2019 - December 2022'
order: 4
---

- Built and maintained RESTful APIs using **Django** and **Django Rest 
  Framework** serving millions of requests daily.
- Designed and implemented database schemas and optimizations for 
  **PostgreSQL** to support growing user base.
- Integrated third-party payment gateways and loyalty program APIs.
- Developed internal tools for customer support and operations teams.
- Participated in on-call rotation and resolved production incidents.

File Organization

Experience entries are stored in src/content/experience/:
src/content/experience/
├── teya.md
├── yoyo.md
├── skye.md
├── nealstreet.md
└── acquicent.md
Use the company name (in kebab-case) as the filename for easy identification and organization.

Writing Effective Descriptions

Use Action Verbs

Start each bullet point with strong action verbs:
  • Built, Developed, Implemented - for creating new things
  • Led, Spearheaded, Managed - for leadership roles
  • Improved, Optimized, Enhanced - for improvements
  • Designed, Architected, Planned - for architectural work
  • Collaborated, Partnered, Coordinated - for teamwork

Quantify When Possible

Add numbers to demonstrate impact:
- Handled up to **2 million transactions daily**
- Improved application performance by **40%**
- Reduced deployment time from **2 hours to 15 minutes**
- Mentored **5 junior developers**
- Led a team of **8 engineers**

Highlight Technologies

Use bold to emphasize key technologies and tools:
- Built microservices using **Python**, **FastAPI**, and **Docker**
- Implemented CI/CD pipelines with **GitHub Actions** and **ArgoCD**
- Designed cloud infrastructure on **AWS** using **Terraform**

Period Formatting

Be consistent with period formatting. Common formats include:
# Full month and year
period: 'January 2023 - November 2024'

# Short month and year  
period: 'Jan 2023 - Nov 2024'

# For current positions
period: 'January 2024 - Present'

# Year only (for older positions)
period: '2019 - 2021'
Choose one format and use it consistently across all experience entries for a professional appearance.

Best Practices

  1. Order chronologically - Use the order field to display most recent jobs first
  2. Be specific - Describe concrete achievements, not just responsibilities
  3. Use metrics - Quantify impact with numbers whenever possible
  4. Highlight technologies - Bold key technologies and tools you used
  5. Focus on impact - Explain what you built and why it mattered
  6. Keep it concise - Aim for 4-6 bullet points per role
  7. Update regularly - Keep your experience current as you take on new responsibilities
  8. Link to companies - Always include accurate company websites

Querying Experience

In your Astro components, query experience entries using the Content Collections API:
import { getCollection } from 'astro:content';

// Get all experience entries sorted by order
const experiences = (await getCollection('experience'))
  .sort((a, b) => a.data.order - b.data.order);

// Get most recent experience
const currentJob = experiences[0];

// Get experiences by company
const teyaExperience = experiences.find(
  exp => exp.data.company === 'Teya'
);

Adding Company Logos

While not part of the schema, you can add company logos to your experience section by:
  1. Storing logos in public/companies/:
    public/
    ├── companies/
    │   ├── teya-logo.png
    │   ├── yoyo-logo.png
    │   └── skye-logo.png
    
  2. Referencing them in your Astro component based on company name:
    <img src={`/companies/${company.toLowerCase()}-logo.png`} alt={company} />
    

Resume Integration

Experience entries work great for both:
  • Web portfolio - Display on your about/resume page
  • PDF resume - Query and format for downloadable PDF resume
  • LinkedIn sync - Use as source of truth for LinkedIn profile
Keep your experience entries up-to-date, and you’ll always have current resume content ready to use anywhere.

Build docs developers (and LLMs) love