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} ))} > ); }
{summary}