'use client' import { motion } from 'framer-motion' import { useLanguage } from '@/lib/LanguageContext' const colors = [ 'from-green-500 to-green-600', 'from-red-500 to-red-600', 'from-orange-500 to-orange-600', 'from-cyan-500 to-cyan-600', 'from-blue-500 to-blue-600', ] const skills = [ ['Kubernetes', 'Talos', 'ArgoCD', 'Terraform', 'Authentik', 'Prometheus', 'Grafana', 'vLLM', 'Temporal', 'Kafka', 'PostgreSQL', 'Go'], ['Golang', 'Terraform', 'IaC', 'OpenShift', 'Docker', 'Distributed Systems', 'Grafana'], ['Java', 'AWS', 'DynamoDB', 'CloudWatch', 'gRPC', 'Distributed Systems', 'Ownership', 'Disaster Recovery', 'Observability'], ['C++', 'CMake', 'Golang', 'Docker'], ['ReactJS', 'Django', 'Agile', 'Sonar'], ] const links = [ '#project-homelab', // Homelab - link to homelab project showcase '#project-rbc', // RBC - link to RBC project showcase '#project-aws', // AWS - link to AWS project showcase null, 'https://plan.navcanada.ca/account/login/?next=/', ] const linkTexts = [ 'Learn more →', 'Learn more →', 'Learn more →', '', 'View Product →', ] const itemVariants = { hidden: { opacity: 0, y: 40 }, visible: { opacity: 1, y: 0, transition: { duration: 0.5, ease: 'easeOut' }, }, } export function ExperienceTimeline() { const { t } = useLanguage() const timeline = t.experience.items return (

{t.experience.title}

{t.experience.subtitle}

{/* Timeline line */}
{/* Timeline items */}
{timeline.map((item, index) => ( {/* Timeline dot */}
{/* Content card */}

{item.company}

{item.role}

{item.period}

{item.description}

{skills[index]?.map((skill) => ( {skill} ))}
{links[index] && ( {linkTexts[index] || 'View Product →'} )}
))}
) }