feat(content): update portfolio profile copy

This commit is contained in:
Evan
2026-04-06 02:38:35 +08:00
parent 01c98b2898
commit 0ea4721a94
5 changed files with 86 additions and 52 deletions

View File

@@ -45,7 +45,7 @@ export const metadata: Metadata = {
description: DATA.description,
url: DATA.url,
siteName: `${DATA.name}`,
locale: "en_US",
locale: "zh_CN",
type: "website",
},
robots: {
@@ -75,7 +75,7 @@ export default function RootLayout({
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<html lang="zh-CN" suppressHydrationWarning>
<Script
defer
src="https://analytics.liukersun.com/script.js"

View File

@@ -23,7 +23,7 @@ export default function Page() {
delay={BLUR_FADE_DELAY}
className="text-3xl font-semibold tracking-tighter sm:text-4xl lg:text-5xl"
yOffset={8}
text={`Hi, I'm ${DATA.name.split(" ")[0]}👋`}
text={`你好,我是 ${DATA.name.split(" ")[0]} 👋`}
/>
<BlurFadeText
className="text-muted-foreground max-w-[600px] md:text-lg lg:text-xl"
@@ -43,7 +43,7 @@ export default function Page() {
<section id="about">
<div className="flex min-h-0 flex-col gap-y-4">
<BlurFade delay={BLUR_FADE_DELAY * 3}>
<h2 className="text-xl font-bold"></h2>
<h2 className="text-xl font-bold"></h2>
</BlurFade>
<BlurFade delay={BLUR_FADE_DELAY * 4}>
<div className="prose max-w-full text-pretty font-sans leading-relaxed text-muted-foreground dark:prose-invert">
@@ -57,7 +57,7 @@ export default function Page() {
<section id="work">
<div className="flex min-h-0 flex-col gap-y-6">
<BlurFade delay={BLUR_FADE_DELAY * 5}>
<h2 className="text-xl font-bold">Work Experience</h2>
<h2 className="text-xl font-bold"></h2>
</BlurFade>
<BlurFade delay={BLUR_FADE_DELAY * 6}>
<WorkSection />
@@ -67,7 +67,7 @@ export default function Page() {
<section id="education">
<div className="flex min-h-0 flex-col gap-y-6">
<BlurFade delay={BLUR_FADE_DELAY * 7}>
<h2 className="text-xl font-bold">Education</h2>
<h2 className="text-xl font-bold"></h2>
</BlurFade>
<div className="flex flex-col gap-8">
{DATA.education.map((education, index) => (
@@ -115,7 +115,7 @@ export default function Page() {
<section id="skills">
<div className="flex min-h-0 flex-col gap-y-4">
<BlurFade delay={BLUR_FADE_DELAY * 9}>
<h2 className="text-xl font-bold">Skills</h2>
<h2 className="text-xl font-bold"></h2>
</BlurFade>
<div className="flex flex-wrap gap-2">
{DATA.skills.map((skill, id) => (

View File

@@ -21,10 +21,10 @@ export default function ContactSection() {
</div>
<div className="relative flex flex-col items-center gap-4 text-center">
<h2 className="text-3xl font-bold tracking-tighter sm:text-5xl">
Get in Touch
</h2>
<p className="mx-auto max-w-lg text-muted-foreground text-balance">
{" "}
AI {" "}
<Link
href={DATA.contact.social.Telegram.url}
target="_blank"
@@ -46,4 +46,3 @@ export default function ContactSection() {
</div>
);
}

View File

@@ -15,7 +15,7 @@ export default function ProjectsSection() {
/>
<div className="border bg-primary z-10 rounded-xl px-4 py-1">
<span className="text-background text-sm font-medium"></span>
<span className="text-background text-sm font-medium"></span>
</div>
<div
className="flex-1 h-px bg-linear-to-l from-transparent from-5% via-border via-95% to-transparent"
@@ -23,7 +23,7 @@ export default function ProjectsSection() {
/>
</div>
<div className="flex flex-col gap-y-3 items-center justify-center">
<h2 className="text-3xl font-bold tracking-tighter sm:text-4xl"></h2>
<h2 className="text-3xl font-bold tracking-tighter sm:text-4xl"></h2>
</div>
</div>
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2 max-w-[800px] mx-auto auto-rows-fr">
@@ -51,4 +51,3 @@ export default function ProjectsSection() {
</section>
);
}

View File

@@ -18,32 +18,30 @@ export const DATA = {
name: "Evan",
initials: "ES",
url: "https://liukersun.com",
location: "China",
location: "中国",
locationLink: "https://www.google.com/maps/place/china",
description:
"全栈软件工程师,6年开发经验。热爱技术活跃于Telegram。",
"全栈软件工程师,专注 AI 应用、Go/Python 后端、自动化工具与平台化运维。",
summary:
"拥有6年软件开发经验的全栈工程师,曾就职于字节跳动 RTC 实验室、亚厦集团和 MakeBlock。擅长前后端开发、自动化测试、数据处理和办公自动化做过C#项目与Swift iOS应用精通Linux。",
"拥有 6 年软件开发经验,长期交付从前端界面、后端服务到部署运维的完整系统。\n\n最近几年的工作重点集中在 **AI 应用工程化**、**自动化工具**、**平台与网关能力建设**、**量化交易相关服务**。我更擅长把分散的技术组件组合成真正可运行的产品,而不是停留在单点功能实现。\n\n日常技术栈覆盖 React / Next.js、Go、Python、PostgreSQL、Docker、Linux也持续在做 CLI 工具、数据处理、业务自动化和自托管基础设施相关项目。",
avatarUrl: "/me.png",
skills: [
{ name: "Python", icon: Python },
{ name: "TypeScript", icon: Typescript },
{ name: "React", icon: ReactLight },
{ name: "Go", icon: Golang },
{ name: "Python", icon: Python },
{ name: "Node.js", icon: Nodejs },
{ name: "Docker", icon: Docker },
{ name: "PostgreSQL", icon: Postgresql },
{ name: "Linux", icon: Linux },
{ name: "Java", icon: Java },
{ name: "C#", icon: Csharp },
{ name: "React", icon: ReactLight },
{ name: "JavaScript", icon: Typescript },
{ name: "Swift", icon: Swift },
{ name: "iOS", icon: Ios },
{ name: "PostgreSQL", icon: Postgresql },
{ name: "Redis", icon: Csharp },
{ name: "Linux", icon: Linux },
{ name: "办公自动化", icon: Office },
{ name: "Nginx", icon: Nodejs },
{ name: "Docker", icon: Docker },
{ name: "Jenkins", icon: Golang },
],
navbar: [
{ href: "/", icon: HomeIcon, label: "Home" },
{ href: "/", icon: HomeIcon, label: "首页" },
],
contact: {
email: "liukersun@gmail.com",
@@ -57,7 +55,7 @@ export const DATA = {
},
Blog: {
name: "Blog",
name: "博客",
url: "https://blog.liukersun.com",
icon: Icons.Blog,
@@ -71,7 +69,7 @@ export const DATA = {
navbar: true,
},
email: {
name: "Send Email",
name: "邮箱",
url: "mailto:liukersun@gmail.com",
icon: Icons.email,
@@ -91,7 +89,7 @@ export const DATA = {
start: "2023",
end: "2025",
description:
"负责全栈开发工作内部质检系统功能编写。参与训练AI模型识别产品状况优化流水线效率。",
"负责内部质检与业务系统的全栈开发,覆盖前端页面、后端接口、数据流转与部署协作。参与 AI 识别相关流程接入,用工程化手段提升产线质检效率与可追踪性。",
},
{
company: "哈尔滨工业大学重庆研究院",
@@ -103,7 +101,7 @@ export const DATA = {
start: "2023",
end: "2023",
description:
"担任项目经理技术负责人,负责项目整体技术方向和架构设计。管理项目进度和团队协作,确保项目按时高质量交付。参与多个科研项目的技术选型和实施。",
"担任项目经理技术负责人,负责项目技术路线、架构设计、任务拆解与交付推进。需要同时处理研发协同、需求落地和质量把控,偏向工程与管理双角色。",
},
{
company: "字节跳动",
@@ -115,10 +113,10 @@ export const DATA = {
start: "2021",
end: "2023",
description:
"在 RTC 实验室负责音视频质量评估弱网自动化测试开发自动化测试工具和框架,提升测试效率。参与音视频通话质量优化,保障产品稳定性。使用 Python、Java 进行测试工具开发。",
"在 RTC 实验室负责音视频质量评估弱网自动化测试开发测试工具、数据分析脚本和效率平台,持续提升测试覆盖率与执行效率,支撑音视频通话质量优化和稳定性保障。",
},
{
company: "厦集团",
company: "厦集团",
href: "#",
badges: [],
location: "中国",
@@ -127,7 +125,7 @@ export const DATA = {
start: "2020",
end: "2021",
description:
"负责外立面 3D 建模,使用 Rhino、CAD、GrassHopper 等专业软件。开发 Python/Java/VBA 自动化工具,提升建模和数据处理效率。参与多个大型项目的 BIM 建模和优化工作。",
"负责外立面 3D 建模与 BIM 相关工作,使用 Rhino、CAD、Grasshopper 等专业工具。围绕建模和数据处理开发 Python / Java / VBA 自动化脚本,提升重复性工作的处理效率。",
},
],
education: [
@@ -142,45 +140,83 @@ export const DATA = {
],
projects: [
{
title: "个人博客",
href: "https://blog.liukersun.com",
dates: "2018 - 至今",
title: "OpenManage",
href: "https://github.com/LiukerSun/openmanage",
dates: "2026",
active: true,
description:
"个人技术博客,分享软件开发经验、技术学习笔记和项目实践。涵盖前端、后端、自动化测试等多个技术领域。",
"面向 AI Agent 社交网络的管理平台,支持批量创建 Agent、容器生命周期管理、模板配置、日志查看以及通过 SSE / WebSocket 实时反馈运行状态。",
technologies: [
"Blog",
"技术分享",
"开发经验",
"Next.js",
"Go",
"Docker",
"JWT",
"SSE",
],
links: [
{
type: "Website",
href: "https://blog.liukersun.com",
icon: <Icons.globe className="size-3" />,
type: "GitHub",
href: "https://github.com/LiukerSun/openmanage",
icon: <Icons.github className="size-3" />,
},
],
image: "./base.png",
video: "",
},
{
title: "Agent Dispatcher",
href: "https://github.com/LiukerSun/agentdispatcher",
dates: "2026",
active: true,
description:
"多 Agent 协作的 GitOps 调度系统骨架,串联 Telegram、GitHub Flow、Jenkins 和调度服务,重点处理批量执行、分支编排、通知汇总与可扩展的服务边界。",
technologies: ["Go", "GitOps", "Telegram", "Jenkins", "Scheduler"],
links: [
{
type: "GitHub",
href: "https://github.com/LiukerSun/agentdispatcher",
icon: <Icons.github className="size-3" />,
},
],
image: "./arch.png",
video: "",
},
{
title: "github",
href: "https://github.com/LiukerSun",
dates: "2018 - 至今",
title: "cc-cli",
href: "https://github.com/LiukerSun/cc-cli",
dates: "2026",
active: true,
description: "个人github仓库记录个人项目和学习代码。",
technologies: ["github", "项目管理", "学习代码"],
description:
"给 Claude / Codex 使用的命令行配置切换器,用来统一管理不同站点、模型和凭证,解决多套 API 配置切换成本高的问题。",
technologies: ["Go", "CLI", "Developer Experience", "AI Tooling"],
links: [
{
type: "Website",
href: "https://github.com/LiukerSun",
type: "GitHub",
href: "https://github.com/LiukerSun/cc-cli",
icon: <Icons.github className="size-3" />,
image: "./github.png",
},
],
image: "./github.png",
video: "",
}
},
{
title: "Excel JSON Service",
href: "https://github.com/LiukerSun/excel-json-tool",
dates: "2026",
active: true,
description:
"Excel 与 JSON 的双向转换服务,重点保留合并单元格、公式、数据验证、注释和命名区域,适合做结构化数据迁移与自动化处理。",
technologies: ["Python", "Excel", "JSON", "Web UI", "Automation"],
links: [
{
type: "GitHub",
href: "https://github.com/LiukerSun/excel-json-tool",
icon: <Icons.github className="size-3" />,
},
],
image: "./base.png",
video: "",
},
],
hackathons: [
// 如果有参加过的技术活动、黑客马拉松或竞赛,可以在这里添加