Compare commits
2 Commits
088f6704c2
...
1fb76ad454
| Author | SHA1 | Date | |
|---|---|---|---|
| 1fb76ad454 | |||
| 83f0a44e72 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.pdf
|
||||||
6
cv.typ
6
cv.typ
@ -7,13 +7,11 @@
|
|||||||
include {
|
include {
|
||||||
"modules_" + lang + "/" + module + ".typ"
|
"modules_" + lang + "/" + module + ".typ"
|
||||||
}
|
}
|
||||||
|
v(5pt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#show: cv.with(
|
#show: cv.with(metadata, profilePhoto: image("./src/avatar.png"))
|
||||||
metadata,
|
|
||||||
profilePhoto: image("./src/avatar.png"),
|
|
||||||
)
|
|
||||||
// #set text(size: 9pt)
|
// #set text(size: 9pt)
|
||||||
#importModules((
|
#importModules((
|
||||||
"education",
|
"education",
|
||||||
|
|||||||
@ -21,8 +21,8 @@ language = "zh"
|
|||||||
#date_width = "3.6cm"
|
#date_width = "3.6cm"
|
||||||
|
|
||||||
[layout.fonts]
|
[layout.fonts]
|
||||||
regular_fonts = ["MiSans VF", "MiSans VF"]
|
regular_fonts = ["MiSans", "MiSans"]
|
||||||
header_font = "MiSans VF"
|
header_font = "MiSans"
|
||||||
|
|
||||||
[layout.header]
|
[layout.header]
|
||||||
# Optional values: left, center, right
|
# Optional values: left, center, right
|
||||||
@ -44,7 +44,7 @@ language = "zh"
|
|||||||
inject_ai_prompt = false
|
inject_ai_prompt = false
|
||||||
|
|
||||||
# Decide if you want to inject keywords or not
|
# Decide if you want to inject keywords or not
|
||||||
inject_keywords = true
|
inject_keywords = false
|
||||||
injected_keywords_list = ["Data Analyst", "GCP", "Python", "SQL", "Tableau"]
|
injected_keywords_list = ["Data Analyst", "GCP", "Python", "SQL", "Tableau"]
|
||||||
|
|
||||||
[personal]
|
[personal]
|
||||||
@ -96,4 +96,4 @@ language = "zh"
|
|||||||
# Currently supported non-latin language codes: ("zh", "ja", "ko", "ru")
|
# Currently supported non-latin language codes: ("zh", "ja", "ko", "ru")
|
||||||
[lang.non_latin]
|
[lang.non_latin]
|
||||||
name = "余翰文"
|
name = "余翰文"
|
||||||
font = "MiSans VF"
|
font = "MiSans"
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
#import "@preview/brilliant-cv:2.0.5": cvSection, cvHonor
|
#import "@preview/brilliant-cv:2.0.5": cvHonor, cvSection
|
||||||
#let metadata = toml("../metadata.toml")
|
#let metadata = toml("../metadata.toml")
|
||||||
#let cvSection = cvSection.with(metadata: metadata)
|
#let cvSection = cvSection.with(metadata: metadata)
|
||||||
#let cvHonor = cvHonor.with(metadata: metadata)
|
#let cvHonor = cvHonor.with(metadata: metadata)
|
||||||
|
|
||||||
|
|
||||||
#cvSection("证书")
|
#cvSection("成果")
|
||||||
|
|
||||||
|
|
||||||
- 2024 AdventureX 黑客松 四个赛道和一个主题的第一名 (With GuiiAI)
|
- 2024 AdventureX 黑客松 四个赛道和一个主题*的第一名* (With GuiiAI)
|
||||||
- 2024 深圳 AI\#DEA AI 创新应用大赛 第一名 (With GuiiAI\)
|
- 2024 深圳 AI\#DEA AI 创新应用大赛 *第一名* (With GuiiAI\)
|
||||||
- 第十七届 中国大学生计算机设计大赛 全国二等奖
|
- 第十七届 中国大学生计算机设计大赛 *全国二等奖*
|
||||||
- 软件著作权一份
|
- 软件著作权一份
|
||||||
- 江苏省“联通软研杯”优胜奖
|
- 江苏省“联通软研杯”优胜奖
|
||||||
- 全国“盘古石杯”优胜奖
|
- 全国“盘古石杯”优胜奖
|
||||||
- 雅思 7.0
|
- *雅思 7.0*
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
#import "@preview/brilliant-cv:2.0.5": cvSection, cvEntry, hBar
|
#import "@preview/brilliant-cv:2.0.5": cvEntry, cvSection, hBar
|
||||||
#let metadata = toml("../metadata.toml")
|
#let metadata = toml("../metadata.toml")
|
||||||
#let cvSection = cvSection.with(metadata: metadata)
|
#let cvSection = cvSection.with(metadata: metadata)
|
||||||
#let cvEntry = cvEntry.with(metadata: metadata)
|
#let cvEntry = cvEntry.with(metadata: metadata)
|
||||||
@ -16,18 +16,18 @@
|
|||||||
logo: image("../src/logos/ucla.png"),
|
logo: image("../src/logos/ucla.png"),
|
||||||
description: list(
|
description: list(
|
||||||
[研究方向:点云分割、点云配准、弱监督学习],
|
[研究方向:点云分割、点云配准、弱监督学习],
|
||||||
// [课程: Big Data Mining #hBar() Cloud Computing #hBar() Project Management],
|
[课程: Big Data Mining #hBar() Cloud Computing #hBar() Project Management],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
#cvEntry(
|
#cvEntry(
|
||||||
title: [计算机科学与技术(腾讯实验班)- 学士],
|
title: [计算机科学与技术(腾讯实验班)- 学士],
|
||||||
society: [南京信息工程大学],
|
society: [南京信息工程大学],
|
||||||
date: [2014 - 2018],
|
date: [2020 - 2024],
|
||||||
location: [南京],
|
location: [南京],
|
||||||
logo: image("../src/logos/ucla.png"),
|
logo: image("../src/logos/ucla.png"),
|
||||||
description: list(
|
description: list(
|
||||||
[研究方向:季节内台风预报、图像语义分割、],
|
[研究方向:季节内台风预报、图像语义分割、],
|
||||||
// [课程: 数据库系统 #hBar() 计算机网络 #hBar() 软件工程 #hBar() 人工智能],
|
[课程: 计算机网络 #hBar() 软件工程 #hBar() 人工智能 #hBar() 计算机图形学 #hBar() 计算机视觉],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
#import "@preview/brilliant-cv:2.0.5": cvSection, cvEntry
|
#import "@preview/brilliant-cv:2.0.5": cvEntry, cvSection
|
||||||
#let metadata = toml("../metadata.toml")
|
#let metadata = toml("../metadata.toml")
|
||||||
#let cvSection = cvSection.with(metadata: metadata)
|
#let cvSection = cvSection.with(metadata: metadata)
|
||||||
#let cvEntry = cvEntry.with(metadata: metadata)
|
#let cvEntry = cvEntry.with(metadata: metadata)
|
||||||
@ -9,20 +9,20 @@
|
|||||||
#cvSection("职业经历")
|
#cvSection("职业经历")
|
||||||
|
|
||||||
#cvEntry(
|
#cvEntry(
|
||||||
title: [前端工程师],
|
title: [前端实习生],
|
||||||
society: [北京小米],
|
society: [北京小米科技有限公司 - 南京],
|
||||||
logo: image("../src/logos/xiaomi.svg"),
|
logo: image("../src/logos/xiaomi.svg"),
|
||||||
date: [2025.4 - 现在],
|
date: [2025.4 - 现在],
|
||||||
location: [南京],
|
location: [南京],
|
||||||
description: list(
|
description: list(
|
||||||
[参与米家 React Native 的插件开发,保证大家电插件的稳定上线],
|
[参与米家 React Native 的插件开发和迭代,保证大家电产品的稳定上线],
|
||||||
// [],
|
// [],
|
||||||
),
|
),
|
||||||
tags: ("React Native", "Rematch"),
|
tags: ("React Native", "Redux", "ESLint"),
|
||||||
)
|
)
|
||||||
|
|
||||||
#cvEntry(
|
#cvEntry(
|
||||||
title: [前端工程师],
|
title: [前端实习生],
|
||||||
society: [南京迈趣尔有限公司],
|
society: [南京迈趣尔有限公司],
|
||||||
logo: image("../src/logos/maiqu.png"),
|
logo: image("../src/logos/maiqu.png"),
|
||||||
date: [2021 - 2023],
|
date: [2021 - 2023],
|
||||||
@ -31,4 +31,5 @@
|
|||||||
[在校期间负责多个应用的前端应用的产品设计、架构设计、软件开发与工程化工作],
|
[在校期间负责多个应用的前端应用的产品设计、架构设计、软件开发与工程化工作],
|
||||||
[负责团队文档搭建、Code Review、指导团队成员展开工作。],
|
[负责团队文档搭建、Code Review、指导团队成员展开工作。],
|
||||||
),
|
),
|
||||||
|
tags: ("Vue3", "TypeScript", "Uniapp", "Vite", "Cloudbase"),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
#import "@preview/brilliant-cv:2.0.5": cvSection, cvEntry
|
#import "@preview/brilliant-cv:2.0.5": cvEntry, cvSection
|
||||||
#let metadata = toml("../metadata.toml")
|
#let metadata = toml("../metadata.toml")
|
||||||
#let cvSection = cvSection.with(metadata: metadata)
|
#let cvSection = cvSection.with(metadata: metadata)
|
||||||
#let cvEntry = cvEntry.with(metadata: metadata)
|
#let cvEntry = cvEntry.with(metadata: metadata)
|
||||||
@ -16,20 +16,20 @@
|
|||||||
tags: ("Unplugin", "Vue", "Monorepo"),
|
tags: ("Unplugin", "Vue", "Monorepo"),
|
||||||
description: "作为 Vite Devtools 安装到任意现有项目,不依赖编辑器、IDE",
|
description: "作为 Vite Devtools 安装到任意现有项目,不依赖编辑器、IDE",
|
||||||
)
|
)
|
||||||
- \[项目架构\] GuiiAI Devtools 分为多个包。主要组成部分为:Vite Plugin Server、悬浮球叠加层、操作面板。Vite Server 提供修改代码文件、获取源码的能力,悬浮球叠加层和操作面板可以让用户发出 Prompt。
|
- *[项目架构]* GuiiAI Devtools 分为多个包。主要组成部分为:Vite Plugin Server、悬浮球叠加层、操作面板。Vite Server 提供修改代码文件、获取源码的能力,悬浮球叠加层和操作面板可以让用户发出 Prompt。
|
||||||
|
|
||||||
|
|
||||||
- \[项目基建\] GuiiAI Devtools 的仓库是一个大的 Monorepo,分为多个包发布。最开始使用 Vercel 的 ai-sdk 作为 AI 库,但由于其自定义能力不够,我们自己封装了 neuri 库作为替代
|
- *[项目基建]* GuiiAI Devtools 的仓库是一个大的 Monorepo,分为多个包发布。最开始使用 Vercel 的 ai-sdk 作为 AI 库,但由于其自定义能力不够,我们自己封装了 neuri 库作为替代
|
||||||
|
|
||||||
- \[编译时 DOM 注入\] 通过 Vite Plugin 的能力,将一个悬浮球注入到用户 Dev 模式的网页,作为用户控制 AI 写代码的操作中心。注入的元素使用另一个 Vue 实例,因此不要求用户使用 Vue 开发。
|
- *[编译时 DOM 注入]* 通过 Vite Plugin 的能力,将一个悬浮球注入到用户 Dev 模式的网页,作为用户控制 AI 写代码的操作中心。注入的元素使用另一个 Vue 实例,因此不要求用户使用 Vue 开发。
|
||||||
|
|
||||||
- \[UI 样式隔离\] 为避免用户页面的全局样式污染悬浮球和面板,我们使用 shadow-dom 隔离了悬浮球和主页面的样式,避免了样式污染,主面板使用 Iframe,隔绝上下文。
|
- *[UI 样式隔离]* 为避免用户页面的全局样式污染悬浮球和面板,我们使用 shadow-dom 隔离了悬浮球和主页面的样式,避免了样式污染,主面板使用 Iframe,隔绝上下文。
|
||||||
|
|
||||||
- \[Vite 到浏览器的 RPC 通信\] 为保证 Vite Plugin Server 和 前端的双向通信,我封装了一个简易的 RPC 库。浏览器不同上下文之间使用 BroadcastChannel 通信,浏览器与 Vite Plugin Server 复用 dev ws 相互通信。
|
- *[Vite 到浏览器的 RPC 通信]* 为保证 Vite Plugin Server 和 前端的双向通信,我封装了一个简易的 RPC 库。浏览器不同上下文之间使用 BroadcastChannel 通信,浏览器与 Vite Plugin Server 复用 dev ws 相互通信。
|
||||||
|
|
||||||
- \[自定义接入模型\] Devtools 支持自定义 OpenAI API Endpoint。
|
- *[自定义接入模型]* Devtools 支持自定义 OpenAI API Endpoint。
|
||||||
|
|
||||||
- \[优化打包体积\] 通过动态导入代码编辑器的 highlight.js,将打包体积从 2M 降低至 300k
|
- *[优化打包体积]* 通过动态导入代码编辑器的 highlight.js,将打包体积从 2M 降低至 300k
|
||||||
|
|
||||||
|
|
||||||
#cvEntry(
|
#cvEntry(
|
||||||
@ -37,28 +37,30 @@
|
|||||||
society: "NuistShare",
|
society: "NuistShare",
|
||||||
location: "南京",
|
location: "南京",
|
||||||
tags: ("Nuxt", "NestJs", "Prisma"),
|
tags: ("Nuxt", "NestJs", "Prisma"),
|
||||||
description: "一个使用 Nuxt3、NestJs 开发的学习资料共享",
|
description: "",
|
||||||
|
date: "2023.7-2023.9",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
一个使用 Nuxt3、NestJs 开发的学习资料共享
|
||||||
|
|
||||||
|
- *[打包体积优化]* 优化字体以及部分样式进行懒加载,部分组件使用动态导入加载,将首屏需要加载的资源从 2M 优化到240k,大大缩短首屏加载时间。
|
||||||
|
|
||||||
- [打包体积优化] 优化字体以及部分样式进行懒加载,部分组件使用动态导入加载,将首屏需要加载的资源从 2M 优化到240k,大大缩短首屏加载时间。
|
- *[中文字体分块优化]* 使用开源项目中文网字计划对字体分包,导出为分片 woff 并在 CDN 处设置强缓存。解决字体过大加载缓慢 的问题。
|
||||||
|
|
||||||
- [中文字体分块优化] 使用开源项目中文网字计划对字体分包,导出为分片 woff 并在 CDN 处设置强缓存。解决字体过大加载缓慢 的问题。
|
- *[Prerender 支持]* 使用 Nuxt 3 的能力,提前预渲染主页样式,缩短首屏加载时间
|
||||||
|
|
||||||
- [Prerender 支持] 使用 Nuxt 3 的能力,提前预渲染主页样式,缩短首屏加载时间
|
- *[CDN 集成部署优化]* 利用 vite-plugin-qiniu, 将 assets 上传至 CDN 并配置强缓存
|
||||||
|
|
||||||
- [CDN 集成部署优化] 利用 vite-plugin-qiniu, 将 assets 上传至 CDN 并配置强缓存
|
- *[S3、AList 多存储协议支持]* 通过抓包并分析 Alist,支持了 Alist 协议,并且支持了 S3 协议。
|
||||||
|
|
||||||
- [S3、AList 多存储协议支持]
|
- *[Github OAuth、邮箱验证支持]* 通过 node-mail 库支持了发送邮件,支持了 Github OAuth 登录。
|
||||||
|
|
||||||
- [Github OAuth、邮箱验证支持]
|
- *[响应式UI设计]* 使用了 Vue 3 的 Composition API 进行开发,使用了 Vue 3 的 Suspense 特性, 实现了响应式 UI 设计。
|
||||||
|
|
||||||
- [响应式UI设计]
|
|
||||||
|
|
||||||
#cvEntry(
|
#cvEntry(
|
||||||
title: "麦趣测评小游戏",
|
title: "麦趣测评小游戏",
|
||||||
society: "麦趣职前教育小游戏",
|
society: "麦趣职前教育小游戏",
|
||||||
|
tags: ("Uniapp", "Vue2", "Vue3", "TypeScript"),
|
||||||
description: "",
|
description: "",
|
||||||
location: "南京",
|
location: "南京",
|
||||||
date: "2022.7-2022.9",
|
date: "2022.7-2022.9",
|
||||||
@ -68,13 +70,13 @@
|
|||||||
|
|
||||||
技术栈:用户端 Uniapp、Vue2 | 平台端 Vue3、TypeScript、Pinia、Echarts、文件约定式路由
|
技术栈:用户端 Uniapp、Vue2 | 平台端 Vue3、TypeScript、Pinia、Echarts、文件约定式路由
|
||||||
|
|
||||||
- [报告图生成] 在产品的不同时期采用 Canvas 绘制 HTML2CANVAS 的方案动态生成报告图用于用户保存和 分享。
|
- *[报告图生成]* 在产品的不同时期采用 Canvas 绘制 HTML2CANVAS 的方案动态生成报告图用于用户保存和 分享。
|
||||||
|
|
||||||
- [微信接入] 负责完成小程序、H5 应用的 微信登录、支付的接入。
|
- *[微信接入]* 负责完成小程序、H5 应用的 微信登录、支付的接入。
|
||||||
|
|
||||||
- [组件封装] 主导组件化工作,负责计时器、判题弹窗、关卡流程控制等游戏通用组件开发,提供给其他成员使用,编写了详 细的组件文档。
|
- *[组件封装]* 主导组件化工作,负责计时器、判题弹窗、关卡流程控制等游戏通用组件开发,提供给其他成员使用,编写了详 细的组件文档。
|
||||||
|
|
||||||
- [响应式界面] 设计响应式系统,基于媒体查询设计响应式断点规则,为多种窗口尺寸进行了响应式适配。对 IOS 微信下方导 航栏进行特殊处理。
|
- *[响应式界面]* 设计响应式系统,基于媒体查询设计响应式断点规则,为多种窗口尺寸进行了响应式适配。对 IOS 微信下方导 航栏进行特殊处理。
|
||||||
|
|
||||||
- [构建流水线与管理工作]使用了 Github Actions 进行自动化构建与部署,推送到相关云服务。负责内部测试、研发 外包的发布、对接工作。
|
- *[构建流水线与管理工作]* 使用了 Github Actions 进行自动化构建与部署,推送到相关云服务。负责内部测试、研发 外包的发布、对接工作。
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
|
|
||||||
#cvSection("开发技能")
|
#cvSection("开发技能")
|
||||||
|
|
||||||
|
#set text(weight: 300)
|
||||||
|
#set strong(delta: 200)
|
||||||
|
|
||||||
|
|
||||||
- 熟悉 *HTML、CSS、JavaScript、TypeScript、SASS、UnoCSS* 等前端技术;
|
- 熟悉 *HTML、CSS、JavaScript、TypeScript、SASS、UnoCSS* 等前端技术;
|
||||||
|
|
||||||
@ -18,10 +21,10 @@
|
|||||||
|
|
||||||
- 了解 *RESTful、EventStream、WebSocket* 等数据传输协议/规范; 封装过简易 RPC 库;
|
- 了解 *RESTful、EventStream、WebSocket* 等数据传输协议/规范; 封装过简易 RPC 库;
|
||||||
|
|
||||||
- 了解多种 Git 分支模式,会使用 Git merge 和 Git rebase、cherry-pick
|
- 了解多种 Git 分支模式,会使用 Git merge 和 *Git rebase、cherry-pick*
|
||||||
|
|
||||||
- 了解 Scrum 敏捷流程,有主导 Scurm 项目迭代的经历,有搭建 DevOps 自动化流水线的经历。
|
- 了解 Scrum 敏捷流程,有主导 Scurm 项目迭代的经历,有搭建 DevOps 自动化流水线的经历。
|
||||||
|
|
||||||
- 使用过 NestJs、Prisma 等构建后端服务;
|
- 使用过 *NestJs、Prisma* 等构建后端服务;
|
||||||
|
|
||||||
- 有多个从 0 到 1 独立/主导进行项目开发的经历。
|
- 有多个从 0 到 1 独立/主导进行项目开发的经历。
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user