import { createFileRoute } from '@tanstack/react-router' import { experiences, educations, skillGroups, computeDuration, formatDate, CONTACT_EMAIL, } from '#/data/portfolio' import type { Experience, Education, SkillGroup } from '#/data/portfolio' export const Route = createFileRoute('/')({ component: HomePage }) // ── Shared UI primitives ────────────────────────────────────────────────── type ButtonVariant = 'primary' | 'ghost' const BUTTON_VARIANT_CLASSES: Record = { primary: 'rounded-full border border-[rgba(50,143,151,0.35)] bg-[rgba(79,184,178,0.15)] px-5 py-2.5 text-sm font-semibold text-[var(--lagoon-deep)] no-underline transition hover:-translate-y-0.5 hover:bg-[rgba(79,184,178,0.26)]', ghost: 'rounded-full border border-[var(--line)] bg-[var(--surface-strong)] px-5 py-2.5 text-sm font-semibold text-[var(--sea-ink)] no-underline transition hover:-translate-y-0.5 hover:border-[rgba(23,58,64,0.3)]', } function ButtonLink({ href, variant, children, }: { readonly href: string readonly variant: ButtonVariant readonly children: React.ReactNode }) { return ( {children} ) } function TechChip({ label }: { readonly label: string }) { return ( {label} ) } // ── Section heading ─────────────────────────────────────────────────────── function SectionHeading({ kicker, title, id, }: { readonly kicker: string readonly title: string readonly id: string }) { return (

{kicker}

{title}

) } // ── Experience card ─────────────────────────────────────────────────────── function ExperienceCard({ exp, index, }: { readonly exp: Experience readonly index: number }) { const duration = computeDuration(exp.startDate, exp.endDate ?? undefined) const startLabel = formatDate(exp.startDate) const endLabel = exp.endDate ? formatDate(exp.endDate) : 'Present' return (
{/* Timeline dot + connector line */}
{/* Card */}

{exp.company}

{exp.role}

{exp.type}
{startLabel} — {endLabel} {duration} {exp.location}
{exp.bullets.length > 0 && (
    {exp.bullets.map((bullet) => (
  • {bullet}
  • ))}
)} {exp.tech.length > 0 && (
{exp.tech.map((t) => ( ))}
)}
) } // ── Education card ──────────────────────────────────────────────────────── function EducationCard({ edu }: { readonly edu: Education }) { return (

{edu.institution}

{edu.degree}

{edu.startYear} – {edu.endYear} {edu.grade !== null && ( <> Grade: {edu.grade} )}
) } // ── Skill group card ────────────────────────────────────────────────────── function SkillGroupCard({ group }: { readonly group: SkillGroup }) { return (

{group.category}

{group.skills.map((skill) => ( ))}
) } // ── Page ────────────────────────────────────────────────────────────────── function HomePage() { return (
{/* ── Hero ──────────────────────────────────────────── */}

Software Engineer · Copenhagen, Denmark

Hi, I'm Mohammad.

Crafting robust full-stack solutions with a passion for clean architecture, great developer experience, and shipping products people love.

View Experience Get in Touch
{/* ── Experience ────────────────────────────────────── */}
{experiences.map((exp, i) => ( ))}
{/* ── Education ─────────────────────────────────────── */}
{educations.map((edu) => ( ))}
{/* ── Skills ────────────────────────────────────────── */}
{skillGroups.map((group) => ( ))}
{/* ── Contact CTA ───────────────────────────────────── */}

Let's connect

Open to new opportunities

I'm always interested in hearing about exciting engineering challenges and the teams building them.

Say hello →
) }