Learn how to document your professional work experience in your Astro portfolio with structured frontmatter and 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.
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.
The order field controls the display sequence of your work experience. Lower numbers appear first:
order: 1 # Most recent positionorder: 2 # Second most recentorder: 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.
---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**.
Example 2: Mid-Level Role
---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.
Example 3: Startup Role with Business Impact
---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.
- 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**
- Built microservices using **Python**, **FastAPI**, and **Docker**- Implemented CI/CD pipelines with **GitHub Actions** and **ArgoCD**- Designed cloud infrastructure on **AWS** using **Terraform**
Be consistent with period formatting. Common formats include:
# Full month and yearperiod: 'January 2023 - November 2024'# Short month and year period: 'Jan 2023 - Nov 2024'# For current positionsperiod: '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.
In your Astro components, query experience entries using the Content Collections API:
import { getCollection } from 'astro:content';// Get all experience entries sorted by orderconst experiences = (await getCollection('experience')) .sort((a, b) => a.data.order - b.data.order);// Get most recent experienceconst currentJob = experiences[0];// Get experiences by companyconst teyaExperience = experiences.find( exp => exp.data.company === 'Teya');