From 65bbaa30a57fba212f5c46c2e1f832d6c2774bba Mon Sep 17 00:00:00 2001
From: Kai Chen
Date: Thu, 25 Jun 2026 18:14:03 -0700
Subject: [PATCH 1/2] fix: sync About experience from LinkedIn and align
volunteering format
Co-authored-by: Cursor
Co-authored-by: Claude
---
app/about/page.tsx | 120 +++++++++++++++++++++++++++------------------
1 file changed, 72 insertions(+), 48 deletions(-)
diff --git a/app/about/page.tsx b/app/about/page.tsx
index 156adaf..fc46837 100644
--- a/app/about/page.tsx
+++ b/app/about/page.tsx
@@ -161,7 +161,6 @@ export default function About() {
roles: [
{
years: "Apr 2026 – Present",
- meta: "On-site",
role: "Research Assistant",
detail: "RA with an Astra fellow on a compute governance project.",
},
@@ -169,23 +168,20 @@ export default function About() {
},
{
org: "Southern University of Science and Technology",
- meta: "Shenzhen, China",
+ meta: "Shenzhen",
roles: [
{
years: "Jun 2024 – Jun 2025",
- meta: "On-site",
role: "Peer Mentor",
detail: "Peer mentor at Zhicheng College for the Class of 2028.",
},
{
- years: "Feb 2024 – Aug 2024",
- meta: "On-site",
+ years: "Feb 2024 – Jul 2024",
role: "Research Assistant",
detail: "Control theory RA at NCC Lab.",
},
{
years: "Nov 2023 – Jan 2024",
- meta: "On-site",
role: "Teaching Assistant",
detail: "TA for a short-term mindfulness course.",
},
@@ -193,13 +189,13 @@ export default function About() {
},
{
org: "SUSTech Psychology Society (SUSPsych)",
- meta: "Shenzhen, China · On-site",
+ meta: "Shenzhen",
roles: [
{
years: "Jun 2024 – Jun 2025",
role: "President",
detail:
- "Mental health workshops and peer support programs with SUSTech Counseling & Psychological Services.",
+ "Organizing mental health workshops and peer support programs in partnership with SUSTech Counseling & Psychological Services.",
},
{
years: "Oct 2023 – Jun 2024",
@@ -213,7 +209,6 @@ export default function About() {
roles: [
{
years: "Oct 2024 – Jan 2025",
- meta: "Hybrid",
role: "Teaching Assistant",
detail:
"TA for Wellness Ambassador Program (WAP), jointly organized by SUSTech and Lingnan University.",
@@ -255,27 +250,17 @@ export default function About() {
>
{roleItem.role}
-
-
- {roleItem.years}
-
- {"meta" in roleItem && roleItem.meta ? (
-
- · {roleItem.meta}
-
- ) : null}
-
+
+ {roleItem.years}
+
{roleItem.detail ? (
Volunteering
-
+
{[
{
- years: "Oct 2023 – Dec 2025",
- role: "Certified First Aider",
org: "SUSTech Emergency Rescue Association",
+ meta: "Shenzhen",
+ roles: [
+ {
+ years: "Oct 2023 – Dec 2025",
+ role: "Certified First Aider",
+ },
+ ],
},
- ].map(({ years, role, org }, i) => (
+ ].map(({ org, meta: orgMeta, roles }, groupIndex) => (
-
- {years}
-
- {role}
-
-
{org}
+ {orgMeta ? (
+
+ {orgMeta}
+
+ ) : null}
+
1 ? "mt-3 space-y-0" : "mt-2.5"}>
+ {roles.map((roleItem, roleIndex) => (
+
0
+ ? "pt-4 mt-4 border-t border-zinc-100 dark:border-zinc-800/60"
+ : undefined
+ }
+ >
+
+ {roleItem.role}
+
+
+ {roleItem.years}
+
+ {roleItem.detail ? (
+
+ {roleItem.detail}
+
+ ) : null}
+
+ ))}
+
))}
From 807e5e4024ab8cda65c9b32101b9d99ca8f6ef01 Mon Sep 17 00:00:00 2001
From: Kai Chen
Date: Fri, 26 Jun 2026 15:10:19 -0700
Subject: [PATCH 2/2] fix: add AboutRole type for volunteering section build
Volunteering roles only had years and role, so TypeScript narrowed away
optional detail and failed the Vercel production typecheck.
Co-authored-by: Claude
Co-authored-by: Cursor
---
app/about/page.tsx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/app/about/page.tsx b/app/about/page.tsx
index fc46837..26da60b 100644
--- a/app/about/page.tsx
+++ b/app/about/page.tsx
@@ -1,6 +1,12 @@
import type { Metadata } from "next";
import MagChip from "../components/mag-chip";
+type AboutRole = {
+ years: string;
+ role: string;
+ detail?: string;
+};
+
export const metadata: Metadata = {
title: "About — Kai T. Chen",
description:
@@ -290,7 +296,7 @@ export default function About() {
years: "Oct 2023 – Dec 2025",
role: "Certified First Aider",
},
- ],
+ ] as AboutRole[],
},
].map(({ org, meta: orgMeta, roles }, groupIndex) => (