import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; export default function Experience() { return ( Experience Education Extracurricular {ExperienceTabContent()} {EducationTabContent()} {ExtracurricularTabContent()} ); } function ExperienceTabContent() { return ( <> {Position({ title: "Lead Full Stack Developer", institution: "Hyson Horizon", dateRange: "Dec 2024 - Now", country: "Malaysia", summary: "Led development of clients' Astro websites with Payload CMS backend implementation, managed Github Actions CI/CD and deployments.", className: "pb-5", })} {Position({ title: "Frontend Web Developer Intern", institution: "Studio20", dateRange: "Jan 2024 - Apr 2024", country: "Malaysia", summary: "Developed WordPress sites and NextJS apps for clients. Used lazy-loading to optimise page load speeds. Ensured CMS allowed easy yet flexible customisations for clients.", })} ); } function EducationTabContent() { return ( <> {Position({ title: "Bachelors of Computer Science", dateRange: "June 2024 - Now", country: "Australia", summary: `Awarded 50% Vice-Chancellor Scholarship to study Bachelor's in Computer Science, minoring in Full Stack Development. Active committee member in cybersecurity association and software engineering club.`, className: "pb-5", })} {Position({ title: "Diploma in Computer Science", dateRange: "Jan 2022 - Apr 2024", country: "Malaysia", summary: `Focused in Data Science, took on role as President of Computer Programming Club and Vice President of Diploma Student Union.`, })} ); } function ExtracurricularTabContent() { return ( <> {Position({ title: "University Cybersecurity Association, Development Committee", dateRange: "Nov 2025 - Now", country: "Australia", summary: `Leading frontend development club's revamped website using Astro framework with Svelte components.`, className: "pb-5", })} {Position({ title: "University Software Engineering Club Committee", dateRange: "Sep 2025 - Now", country: "Australia", summary: `Leading and contributing to various club projects:`, className: "pb-5", highlights: [ `Rust Discord Bot, includes club membership verification feature using Supabase.`, `Python web scraping AI project, using BeautifulSoup4 and Gemini API.`, ], })} {Position({ title: "Malaysian Association, Marketing Officer", dateRange: "Mar 2025 - Oct 2025", country: "Australia", summary: `Contributed to marketing strategy through video ideation, execution (including on-screen presence and filming), and video editing.`, })} ); } // ICONS AND SUBCOMPONENTS function LocationIcon() { return ( ); } function CalendarIcon() { return ( ); } function BriefCaseIcon() { return ( ); } const lineMoveCSS = ` @keyframes line-move { 0% { background-position: 0% 50%; } 100% { background-position: 0% -100%; } } .animate-line-move { animation: line-move 2s linear infinite; background-size: 100% 200%; } `; function Position({ title, institution, dateRange, country, summary, className = "", highlights = [], }: { title: string; institution?: string; dateRange: string; country: string; summary: string; className?: string; highlights?: Array; }) { return ( <>

{title}

{CalendarIcon()} {dateRange}
{institution && (
{BriefCaseIcon()} {institution}
)}
{LocationIcon()} {country}

{summary}

    {highlights.map((highlight) => (
  • {highlight}
  • ))}
); }