作品集
对我来说,从事个人项目是最令人满足的编程类型,这一点通过大量成功的开源和闭源产品得到了很好的证明。我的这些项目的目标通常是创建有用的、技术上具有挑战性的、简单 酷炫的 的工具,以及尝试新技术和框架。
大多数此类工具属于全栈Web开发、自然语言处理或命令行界面领域,主要使用Python(Flask/原生)、TypeScript(React/Svelte/Vue)和/或Golang编写。约十几个完整项目的源代码可在我的 GitHub 个人资料上获取,我在下面详细描述了其中几个最好的项目。
关于工作和教育经历的描述,请参阅我的 简历.
精华中的精华
Lingotrack.com
我从 2022 年 10 月到 2023 年 11 月的热情项目, Lingotrack (50k+ SLOC,Golang + TypeScript + Svelte) 是一个面向语言学习者的社交平台,用于追踪进度并寻找引人入胜的、适合水平的媒体内容。通过可视化学习者的成就,让他们发现引人入胜的外语内容,并与志同道合的人联系,该网站希望让通向流利的旅程变得不那么令人生畏。
构建Lingotrack教会了我很多东西,因为作为一次学习经历,我尽可能地从头开始做很多事情。这涉及从Stripe集成到管理基于云的Linux虚拟机,再到创建自动化CI/CD,以及不少的挫折感!
但最终结果是非常值得的——每月有近千名活跃用户,我们的众包数据库中有超过1500篇媒体文章,记录了4.5 年 的学习时间,而且我每周都会收到几次粉丝邮件!
你可以在以下地方了解更多关于 Lingotrack 的信息 官方关于页面 或者查看 它在Product Hunt上的成功发布.
Locadapt.com
在过去的经历中,我曾担任过翻译,为一家获得4000万美元以上融资的初创公司承包过i18n开发工作,并在欧洲生活了十年。通过这些经历,有一点变得非常清楚:将网站国际化(多语言化)的过程是非常有益的,但也不合理地困难。
进入 Locadapt (25k+ SLOC,TypeScript + React + Svelte + Supabase),一个由Claude驱动的平台,只需两行代码就可以让任何网站变成多语言。只需在任何网站的 head 中添加一个精简的JS片段和相应的CSS,该平台就可以自动、准确且经济地将任何网站翻译成多种语言。 在这个页面上试试看——右下角有一个按钮!
成就包括翻译管理仪表板、用于子域名SEO优化的反向代理服务、使用Web Workers的并行化、定制的联盟计划、无服务器边缘功能、客户端缓存、无浏览器的伪DOM重写、 详细文档等等。
目前正在与几家YC公司竞争,旧金山的一家资金充足的初创公司试图挖我,但我看好这个产品,暂时坚持下去!
黑客马拉松获胜项目
ColdCraft.ai
ColdCraft.ai (约10,000行代码,Flask + TypeScript + Svelte) 是一个SaaS冷邮件Chrome扩展程序,带有相关的仪表板,集成了您的简历、Google日历、Gmail和LinkedIn,帮助您在几秒钟内撰写高度个性化的冷邮件。我和一个朋友在大一春季学期(2024年春季)花了几周时间构建了它。
该项目赢得了 领英和思科在康奈尔大学年度工程展示会上的企业奖项,并收到了几个投资和收购要约。
NoteHacks
康奈尔的朋友有时会取笑我上课不做笔记。然而,我发现(现在仍然认为)我学习最好的方式是全神贯注于当前的讲座,而不是分散注意力进行疯狂的笔记。
话虽如此,笔记对于作业、巩固知识等确实很有帮助,所以我与几个志同道合的新朋友在 加拿大最大的黑客马拉松 合作开发了一个基于AI和CV的笔记工具,可以为我们完成这项繁重的工作。我们的Next.js-、Flask-和OpenAI驱动的工具可以参与讲座,倾听并生成摘要性的Markdown笔记,您稍后可以与之交互并保存。此外,还提供了手势设置元参数,如摘要级别、暂停以及笔记的展开/折叠。
我们的努力和通宵工作为我们赢得了 第1名/共43名 在 最佳Groq使用奖 赛道上(一家知名的LLM公司)。
涌语
在一场有近百名参与者的48小时在线黑客马拉松中,我赢得了"最佳个人黑客"奖。主题是颠覆一个行业,我的参赛作品是一个名为SurgeLingo的语言学习工具,它利用NLP和PostgreSQL为学习者提供Twitter风格的个性化句子,有效地颠覆了外语学习行业。
你可以在Devpost页面上查看黑客马拉松的提交作品 在这里,以及 相应的视频 和更详细的描述。同样,你可以通过从Github上fork 后端 和 前端 来在本地运行它。
FindCircles
Circles (约7千行代码,Next.js + Supabase + Google Cloud) 是一个网络应用程序,用于在朋友群中轻松、自发地聚会,并与新朋友联系,灵感来自我和三位项目团队成员在康奈尔大学广阔校园中的经历。
用户可以邀请朋友组成圈子,通过与Google日历集成,Circles自动找到共同的空闲时间并推荐活动。Circles还会在每周一或根据要求通过电子邮件发送建议的聚会时间和活动。该软件还支持另外两个关键功能:
- 邀请有空的共同朋友,以鼓励结识新朋友
- 为活动创建共享相册
该工具在康奈尔大学2024年Big Red Hacks黑客马拉松上获得了评委颁发的最佳域名奖(findcircles.co)并且是学生评委的最爱(不幸的是,工作人员评委们太过联想到他们工作相关的Google日历和日程安排😅)。
精选个人项目
GCal打包
GCal打包 is like Spotify Wrapped, but for your Google Calendar, and targeted specifically at students. I built it out over a couple of weeks in the Spring 2025 semester at Cornell, and grew it to 1000 users in <24 hours and twice that in the first week.
这个网页应用程序针对移动设备和桌面设备进行了优化,使用 TypeScript、Svelte、Supabase、基于 Gemini 2.5 Flash 的模型管道和 Google Cloud 构建。它充满了动画效果、有趣的 AI 见解和可分享的界面 — 现在免费尝试吧,网址是 gcalwrapped.com!
顶一下
顶一下 是一个基于位置、实时且以朋友为中心的社交媒体应用,我与康奈尔大学的一位好朋友一起开发。技术栈包括Swift、Express、TypeScript、PostgreSQL和AWS。我们在特拉华州注册成立了Bump Platforms LLC,并从1517基金获得了1000美元的非稀释性风险投资,用于支付运行应用程序所需的大量计算成本。
令人印象深刻的技术成就包括:
- 使用WebSockets的实时消息系统
- 完全负责Nginx配置、虚拟机设置和部署
- 作为两名全日制学生的团队,在3个月内从0增长到40k+行代码的最小可行产品
- 已发布到App Store!在那里找到我们 那里.
语言学习仪表板
一个更简单的、仅限本地使用的版本 Lingotrack 作为后来迭代的灵感来源。
language-learning-dashboard 这是一个美观的、全栈的语言学习网络应用程序,是我在新冠疫情封锁期间花了几个月时间开发的。作为一个认真学习中文的人,我最近发现市面上用于追踪外语学习进度的网站都不太令我满意——于是我很自然地决定为自己从零开始建一个!
结果是一个简约而强大的仪表板,它提供了一个闪电般快速、直观的界面,可以精确到分钟地跟踪进度和记录时间。无论是文件上传、由PostgreSQL支持的时间线可视化,还是时尚的深色模式,这个工具应有尽有。但为了简洁起见,我不会在这里详细介绍所有(众多!)细节,因为我已经整理了详细的文档 在其他地方在线发布 并记录了我使用它三个月的经历 在我的博客上.
在线生命日历
在线生命日历是一个生活规划器、待办事项列表和责任追踪应用程序的结合体。使用Python、Flask、Jinja和一些JavaScript构建,该工具为跟踪您的生活提供了一个优雅、响应迅速的界面。
功能
- 查看您的生命,从几天到几十年的任何时间跨度
- 根据事件对您生命的各个阶段进行颜色编码
- 用文字和图片填写你生活中的时刻
- 为自己设定具体目标作为简单的卡片
- 查看有关你生活的详细统计数据并下载你自己的生命日历
...还有更多功能!在线生命日历完全免费,在撰写本文时已有数百用户,并已被证明是一个很好的自我激励和规划资源。其源代码可以在 在这里.
更新:由于经济原因该网站已经下线,但源代码仍可在GitHub上获取。
语言统计
我对可视化和统计数据有一种不健康的痴迷,而且 language-statistics 很好地展示了这一点。它直接从命令行为你的目录显示类似GitHub仓库的彩色条,可以以PNG或SVG图像形式查看。
我一直很恼火的是GitHub语言条仅限于GitHub,因为它提供的细节非常有启发性。所以,我着手将其重新创建为一个Python包。现在使用我的程序,你只需在终端的任何位置运行 statistics 就能看到一个漂亮的彩色条,就像上面看到的那样——最棒的是,它高度可定制。
这些是一些额外的功能,使它比GitHub的更有优势 linguist:
- 选择排除某些文件类型
- 指定程序从根目录搜索的深度
- 控制你导出的图像外观
- 选择文件混合的限制
Other - 决定使用的颜色和最大文件类型数量
它甚至支持命名文件,例如 Dockerfile 或 Cakefile。你可以通过阅读以下内容了解更多信息 README.md 在 仓库,或者自己下载。
语奇特
LinguaKite是一款定制的英语学习应用程序,我在初中三年级的暑假期间开发了它。这是一个全栈的、由NLP驱动的应用程序,包含约5000行Python和Vue代码,它为用户提供管理和查看词库、阅读分级内容、参加测验以加强理解等机会。
将所有内容整合在一起是一项挑战,考虑到我用于构建应用的一些非常少见的框架组合,但是 最终结果 对我为之构建的朋友很有帮助,并在此过程中教会了我很多东西。
国际象棋图表
虽然我年轻时曾经下棋,但我离开了这项皇家游戏,直到新冠疫情爆发,当时在家的时间更多,通勤时间减少,这意味着我必须找到更多的爱好。国际象棋成为了其中一个爱好,我很快发现自己每天都在下棋或复习战略,花费数小时。
在此期间,我注意到缺乏可视化表示国际象棋选手技能的软件。我意识到我必须填补这个空白,于是花了几周的时间编写代码 chess-graph 与 plotly.
我在这个项目上投入了大量精力,而且 最新版本 现在允许玩家选择他们的颜色、游戏文件、阴影、悬停提示等。
低面模式
不久前,我偶然发现了 OpenCV Python 库 — 一个用于计算机视觉的工具。当我玩弄它并发掘出更多更强大的功能时,我突然意识到我可以用它来解决一个让我相当沮丧的问题:MacBook Air 上不应该出现的电池寿命问题。
于是,经过一番不小的努力后,我有了一个可以工作的原型 low-face-mode,这是一个程序,当我不看屏幕时会使屏幕变暗,当我看屏幕时会使其变亮。更重要的是,它是实时运行的,可以从命令行运行,甚至还可以根据"白名单"中允许的面孔来调节亮度/暗度。
不幸的是,我很快就发现,在后台运行这样的程序比它节省的电量消耗更多。但是使用 AppleScript 编程语言,解决支持 Linux 的拉取请求,以及全方位的学习,让我获得了 成品 (见 GIF)并且仍然非常开心。
结论
以上是我工作的代表性样本,但如果你想看更多,请前往我的 GitHub 个人资料 或给我发电子邮件!




