关于 · @soleo

嗨,我是新江。

一名常驻芝加哥的首席软件工程师,构建人们赖以信赖的医疗与商务平台——并把一路上的所学写下来。

邵新江
照片来自 O'Reilly 主办的 Fluent Conference 2018
01

简短介绍

我是邵新江,在社交媒体上也用 @soleo 这个名字。我目前在 The Aspen Group 担任首席工程师。这是一家年营收 40 亿美元的医疗健康集团,旗下五个品牌、在 48 个州拥有 1,400 多家门店: Aspen Dental、ClearChoice Dental Implants、WellNow Urgent Care、Lovet Pet Health Care 和 Chapter Aesthetic Studio。我负责这些品牌的前端与平台架构,并作为所有技术负责人的牵头人带领30 多人的工程团队——包括共享包而非共享应用的平台重构、Auth0 + MFA 身份平台、Web 领域的 MCP 工作,以及全集团统一的可观测性标准。完整故事请见数字商务案例研究。

此前,我在 Peapod Digital Labs(现为 Ahold Delhaize USA)担任首席软件工程师,在 Peapod 担任高级软件工程师,为 PRISM 架构了 GraphQL 中间层——这个白标生鲜电商平台每周服务 2,000 万+ 购物者,覆盖 Stop and Shop、Food Lion、Giant、GIANT 和 Martins——与此同时前端团队从 10 人扩展到 40 多人。

职业生涯早期,我在 EXACT Sports 担任全栈软件工程师,从零开始构建了 PrepHero——一个综合性的训练营注册和运动员招募平台。

最近,我以独立开发者的身份设计、构建并上线了 GroceryTrack——一款 AI驱动的购物小票扫描应用:网页版 MVP 一天内完成,约一个半月后 iOS 应用上架 App Store,随后 Android 版也登陆 Google Play。拍一张小票照片,多模态大模型就能提取每一个商品、价格和分类——无需手动录入,也不需要针对每家商店做模板。完整故事请见 GroceryTrack 案例研究。

我的名字怎么读

在英文里读作 "Sh-ow"——和 "cow" 押韵。"邵" 是我的姓,"新江" 是我的名(中文里姓在前)。在网上我通常用 soleo 这个名字——一个凭空造出来的词,但挺好听。

03

代码之外

阅读

在家里或附近的咖啡馆——我保持学习的默认方式。

写作

在博客里记录经历与思考。

创意烹饪

在厨房里折腾——另一种形式的构建。

跑步

保持规律的里程,让身心都在状态。

游泳

2024 年新加入——学习一项新技能有种让人沉静的力量。

跑步数据: Race results · Strava

04

我喜欢并使用的技术

编程语言
TypeScriptPythonJavaScriptC#KotlinGroovyJavaSwift
云与服务
Google CloudAWSAzureFirebase
框架
Next.jsVue.jsTailwind CSSSpring.NET
监控与告警
SentryGrafanaPrometheusSplunkDatadogPagerDuty
数据库
PostgreSQLMySQLMongoDBRedis
CI / CD
GitHub ActionsGitLab CISpinnakerJenkins
测试
JestVitestCypressPlaywright
容器
DockerKubernetes
API 及其他
RESTGraphQLgRPCOAuth2Web Accessibility
方法论
AgileTrunk-basedGitFlow
05

更详细的故事

这是一篇长文,提前提醒你。

童年时期

我叫邵新江。新江直接来自我名字的中文拼音。大多数人在发音我的名字时都有一定程度的困难。我以前的经理 Ed Grosvenor 不会发这个音,我在各个公司的同事仍在试图弄清楚。在数字世界中,我通常用 soleo 这个名字。这是一个凭空创造的词,但它是一个很酷的名字。

作为一个在中国长大的孩子,这么多年后住在芝加哥,我仍然感到有些奇怪。我很确定我不是同龄人中最聪明的孩子。中国通常竞争非常激烈,我当然没有上最好的学校,最初也没有在大公司工作。然而,我确实觉得与同龄人相比,我选择了一条非常独特的职业道路,我认为我为自己做出了最好的选择。

每当有人问我从哪里来,我告诉他们我来自一个小城市。他们以为小城市是一个没有摩天大楼、每个人都认识每个人的地方。但我的家乡挤满了人和巨大的建筑。我不是在开玩笑!我的城市确实有时代广场,而且可能比纽约的真正时代广场还大。自从我在小学时拥有了第一台台式电脑,我就有了成为软件工程师的梦想。就像其他孩子一样,起初是电子游戏让我对电脑的工作原理感到好奇。然后有一天,我的学校老师告诉我放学后可以多留一会儿,她会教我如何做网站设计。那是1998年,我开始学习如何用 Microsoft FrontPage 和 Dreamweaver 构建网站。

时光飞逝,高考后我要选择大学专业了。我的分数不够好,无法进入顶尖大学,但我做了全面分析,看看我能进什么学校,同时还能充分利用它。我选择了一个与数学相关的专业,叫做信息与计算科学,因为我知道无论如何我都想在计算机科学领域继续深造。数学专业自然会为计算机科学打下坚实的基础,这是非常有益的。在大学里,我遇到了我的导师王志深教授,他真的是我的启发者。他是朋友也是导师。在他的通信实验室期间,我学到了很多关于通信硬件的知识,学会了如何对不同主题进行研究,以及如何探索新想法。

实习生时期

大学期间:射手科技有限公司

在大学的最后一个学期,我在射手科技有限公司实习。我仍然清楚地记得与 Tomasen Shen 和 Yangming Dai 的面试。我对这个行业太陌生了,几乎不知道笔试的任何答案,而且我正要飞回去开始寒假,所以面试时我还带着行李。但第二天我到家时,接到了我们人力资源代表 Amy 的电话,说我可以在春节后开始工作。在射手科技期间,我开始研究使用声学指纹进行字幕匹配优化,并支持硬件供应商使用我们的字幕匹配服务为他们的硬件播放器服务。Tomasen 和 Yangming 对我在软件工程方面的个人发展都非常重要。那是我成为软件工程师之旅的开始。

在实习的最后一个月,我告诉 Tomasen 我计划继续深造,在伊利诺伊大学芝加哥分校攻读计算机科学硕士学位。很快我就开始了在芝加哥的新生活。当我到达时,我实际上感到非常平静。在 UIC,我非常喜欢 Jakob 教授的课程,因为他就像一个有正确思维方式的黑客。他会录制整节课,他的课总是充满个人见解和好的演示。如果你亲自和他交谈,你可能会觉得他社交能力不强,但每当他谈论与计算机科学相关的事情时,他的眼睛就会发光。

研究生期间:EXACT Sports

当研究生的生活变得无聊时,我收到了 Barry Tarter 的电子邮件,他是 EXACT Sports 的创始人。他正在寻找实习生,问我是否有兴趣在他的公司工作。由于学校的工作比我想象的要轻松,我说了是。Ed Grosvenor 面试了我。他在面试结束时的最后一句话是"我不挑剔",然后在接下来的几年里,我开始和他一起从零开始构建我们的训练营注册平台和运动员招募平台。

作为软件工程师

EXACT Sports

我在 EXACT Sports 待了将近5年,我对这个产品产生了深厚的感情,以至于我会在周末检查状态,有时甚至在半夜。感觉很棒,每当你有新想法或从同事那里得到想法时,你就可以开始实施它,看着它成长或失败。薄薄的管理层使产品交付更快,但 Barry 可能不同意这一点。

我们在 EXACT Sports 构建了很多东西,但有一件事深深触动了我,我渴望找到答案。由于我们在那5年期间构建了很多功能,我们并不经常删除功能。我们最终得到了一个包含大量缺陷和一次性功能的代码库,这些功能再也没有被使用过。所以我当时很好奇,我们如何能够管理一个包含用户真正想要的功能的干净代码库。然后我收到了一个黑客活动的邀请。活动的主办方是 Peapod,一家成立于1989年的在线杂货配送公司。我开始想知道 Peapod 的工程团队是否已经找到了答案。

Peapod

我提前去参加活动,和 Tim Franklin 以及 Dan McQuillan 聊了聊。那天晚上我没有得到答案,听起来 Peapod 正在发生一些新的事情。Peapod 正在从遗留架构转变为更现代的架构。与 Dan 的对话让我真的很想和他一起工作,因为他不仅知识渊博,而且在职业生涯中还很年轻。我想知道是什么让他成为一名优秀的工程师。就像任何其他见面会活动一样,我没想到将来会再次见到 Dan 或 Tim,但 Peapod 的招聘人员 Lynn 很快在黑客活动后联系了我,告诉我他们有兴趣面试我担任全栈工程师职位。第二天我面试并被录用了。

在 Peapod 工作了几年后,我真的很喜欢这里的工作环境。与在初创公司工作相比,它绝对压力更小,事情的设计更加细致周到。但它的进展也更慢。正是在 Peapod 任职期间,我学会了让网络应用程序对每个人都更易于访问。我开始更多地专注于前端开发,通过 Medium 博客分享我的开发故事,并在内部组织黑客马拉松活动。我仍在学习,仍在寻找向最终用户交付好产品的方法。

作为首席软件工程师

Peapod Digital Labs

2020年,Peapod Digital Labs 成立,成为 Ahold Delhaize USA 的技术和数字创新引擎。我在 PDL 晋升为首席软件工程师,领导一个工程师团队构建下一代在线杂货购物体验。我的重点是构建可扩展和可维护的系统,这些系统能够适应客户不断变化的需求。

The Aspen Group

2023年,我以首席软件工程师的身份加入了 The Aspen Group,然后在2024年晋升为首席工程师。The Aspen Group 是医疗健康行业技术解决方案的领先提供商。我的职责是领导创新软件解决方案的开发,改善患者护理并简化医疗服务提供者的运营。

当我加入 The Aspen Group 时,我们只有一个小型工程团队(不到 5 名工程师),五个品牌背后却有六套遗留技术栈。作为主管软件工程师,我重建了商业 Web 平台,创立了数字商务平台——一个多租户架构,并以 WellNow 作为 TAG 的第一个多租户应用上线——同时在 2024 年底前把团队扩展到 20 多名工程师。这个平台如今支撑着 1,400 多家门店的数字营销、诊所目录、带欺诈检测的在线预约、患者评论和患者管理。

2024 年 12 月晋升为首席工程师后,我领导了全部五个品牌的架构现代化——共享包,而不是共享应用——构建了 Auth0 + MFA 身份平台,在 Web 领域推动 MCP,并把可观测性统一到 Sentry、Grafana 和 OpenTelemetry。如今我作为所有技术负责人的牵头人,带领着一个 30 多人的工程组织。完整脉络请见数字商务案例研究。

独立开发者之路

GroceryTrack

2026年3月,我终于被一堆购物小票逼得动了手。3月13日开始构建,3月14日 GroceryTrack 的第一个网页版就上线了;大约一个半月后,iOS 应用登陆 App Store,2026年10月 Android 版也上架 Google Play。GroceryTrack 用多模态大模型解决了过去需要数月 OCR 管道开发才能搞定的问题——拍一张小票照片,Gemini 就能把每一个商品、价格和分类提取为结构化数据。移动端用 Flutter,网页端用 Next.js,后端是 Firebase,还有一个 MCP 服务器让 AI 助手可以直接读取你的购物数据。

上线头七个月,它为 270 位注册用户解析了 1,245 张小票、12,376 个商品,累计追踪了超过 9.2 万美元的购物支出——其中还包括一批我从未想过要触达的加拿大用户。构建它让我真切体会到重心的转移:过去需要几个月工程量的解析器如今变成了一段提示词,真正的功夫转向了产品品味、速度,以及倾听真正出现的用户。完整故事请见案例研究(现已包含 iOS 与 Android 演示视频)、开发博客,以及创始人更新 Seven Months of GroceryTrack。

我面前的未来

在这个行业工作了 14 年多后,我意识到成为一名优秀的工程师需要付出很多努力,需要多年的学习和实践。即使你保持好奇心并学习大量知识,每天仍有新材料出现,你无法跟上。你如何处理对未知的恐惧?当某事必须按时完成时,你如何做出正确的决定?还有很多问题我还没有完全弄清楚,我期待着探索答案。

想要联系?

聊聊技术吧。

如果你想合作,或只是想交流想法,欢迎直接联系我——把我姓和名的完整拼写连起来,加上 gmail 点 com,就能找到我。