Backend / AI Engineer — financial APIs, AI-assisted reviews and data pipelines.后端 / AI 工程师 —— 资金类 API、AI 辅助审核与数据管道。
Python and Go services: FastAPI and PostgreSQL in production, with AWS and Azure deployments, transaction controls, idempotent ingestion, release safety and asynchronous workflows.Python 与 Go 服务:生产环境中的 FastAPI 与 PostgreSQL,涵盖 AWS 和 Azure 部署、事务控制、幂等接入、发布安全与异步工作流。
Open to AI / backend engineering roles · US permanent resident正在看 AI / 后端工程岗位 · 美国永久居民
Three calls, what they cost, the rule I kept三个决定、各自的代价、留下的规则
Three calls I made on real projects, in the same shape as the learning archive: what happened, what it taught me and what it cost, the rule I kept, and where it shows today.我在真实项目里做的三个决定,格式和学习档案一样:当时发生了什么,学到什么、代价是什么,留下的规则,今天体现在哪里。
The model can suggest; code decides what is booked模型可以建议,订什么由代码决定
Then当时
We let a language model fill bilingual restaurant bookings. In a 30-case pilot only 17 were fully correct, and 3 contained details the guest never gave.我们让语言模型填写中英双语的餐厅预订。30 例试点里只有 17 例完全正确,3 例填了客人根本没说过的信息。
What I learned · the cost学到的 · 代价
A better prompt could not be the only guard on a booking a real guest relies on. I moved every booking field and the final confirmation into code and kept the model for language. The cost: one more confirmation step for the guest.真实客人要依赖的预订,不能只靠更好的提示词把关。我把每个预订字段和最后的确认都改由代码处理,模型只负责语言。代价:客人要多确认一步。
The rule规则
Anything committed on a customer's behalf is validated by code and confirmed with an explicit yes.凡是替客户提交的东西,都由代码校验,并且要客人明确说「是」。
Now现在
On a separate 39-case held-out set: 33 fully correct, 0 invented values. The two sets are not a like-for-like before and after.在另一份 39 例留出集上:33 例完全正确,0 个编造值。两套数据不是严格可比的前后对照。
A traceable record beats a bigger dataset可追溯的记录,胜过更大的数据量
Then当时
A third-party job feed showed the date a posting was found as the date it was published, so stale jobs looked new. Of its 1,375 “recent” rows, only 214 were actually recent.第三方岗位数据把「抓到的日期」当成「发布日期」,旧岗位看起来像新的。它标为「最近」的 1,375 条里,真正是最近的只有 214 条。
What I learned · the cost学到的 · 代价
More rows were worth less than rows I could trace. I switched to employers' own ATS APIs and kept the source link and timestamp on every record. The cost: every ATS has its own schema and its own meaning of “posted”, so each source needs its own mapping.条数多,不如每条都能追溯。我改用雇主自己的 ATS 接口,每条记录都保留来源链接和时间戳。代价:每个 ATS 的格式和「发布」的含义都不同,每个来源都要单独做映射。
The rule规则
Know where a field came from before you trust it.先知道一个字段从哪来,再决定信不信它。
Now现在
264,148 postings from native sources in the Sep 30, 2026 snapshot, each with its source link.2026 年 9 月 30 日快照:264,148 个岗位,全部来自原始来源,每条都带来源链接。
D03 · 2026BloomFrontier · Jackson Ventures · merged Oct 2026, not deployedBloomFrontier · Jackson Ventures · 2026 年 10 月已合并,未部署
A model never moves money模型永远不能自己动钱
Then当时
Loan officers review construction-draw evidence before money is released. Automated checks could flag missing documents; the question was how far to let them go.放款前,信贷员要审核工程提款的证据。自动检查能标出缺失的文件,问题是让它走多远。
What I learned · the cost学到的 · 代价
Checks may raise a flag, but release needs a person and the database. I separated evidence checks, two-person approval and database-enforced limits, and split the work into small pull requests that could each be reviewed on their own. The cost: more review time and a more complex workflow, in exchange for clear accountability.检查可以报警,但放款要靠人和数据库。我把证据检查、双人审批和数据库强制的限制分开,并把工作拆成能各自单独审核的小 PR。代价:审核时间更长、流程更复杂,换来的是清楚的责任归属。
The rule规则
Anything that moves money needs a person's sign-off and a database constraint, not a model's answer.凡是动钱的操作,要有人签字、有数据库约束,而不是靠模型的回答。
Now现在
5 pull requests merged on Oct 9, 2026, with 103 financial tests on real PostgreSQL, including concurrent approvals. Not yet deployed.5 个 PR 于 2026 年 10 月 9 日合并,103 个资金相关测试跑在真实 PostgreSQL 上,包括并发审批。尚未部署。
2023 — 2025 · what each early project taught me2023 — 2025 · 每个早期项目教会我的事
Earlier projects that are not portfolio pieces on their own: tutorials, coursework, hackathons and prototypes. Each one taught me a rule I still build by, and each rule points to the work where it shows today.单独拿出来不够格当作品的早期项目:教程、课程、黑客松和原型。每一个都教会了我一条至今仍在用的规则,每条规则都指向今天体现它的作品。
No.Year年份Sheet图纸The rule it left me留下的规则Shows today in今天体现在
FIG. 01 — The model proposes; the system decides模型提议,系统决定York · MSc
Profile简介
Measured before it ships上线之前,先量清楚
“A model's answer is a proposal. What runs is decided by rules, tests and an explicit yes.”“模型的回答只是提议。真正执行什么,由规则、测试和一句明确的‘是’来决定。”
I build production Python services and evaluated LLM applications. At Jackson Ventures I shipped a reservation service real guests use, led the IPOT POS backend, rebuilt Nalu after its LLM pilot invented booking values, and built loan-draw review controls for BloomFrontier. Before that, at Polygraf.ai, I built PII detection and policy enforcement for text sent to AI tools.我做生产级 Python 服务和经过评估的 LLM 应用。在 Jackson Ventures,我上线了真实客人在用的预订服务,主导 IPOT 的 POS 后端,在 LLM 试点编造预订字段后重建了 Nalu,并为 BloomFrontier 构建提款审核控制。此前在 Polygraf.ai,我为发往 AI 工具的文本构建 PII 检测与策略执行。
Every number on this site names where it was measured. Where the code is private, the case page says so.本站每个数字都注明测量来源;代码不公开的,案例页会直接说明。
AI Engineer · Jackson VenturesBloomFrontier fintech lending · IPOT restaurant platform · revenue analytics · San Francisco Bay Area · affiliate of REAAI under the same ownershipBloomFrontier 金融科技借贷 · IPOT 餐饮平台 · 营收分析 · 旧金山湾区 · 与 REAAI 同一老板旗下的关联公司
Building BloomFrontier's AI-assisted loan-draw review (FastAPI/PostgreSQL): missing or flagged documents go to loan officers instead of being approved automatically.构建 BloomFrontier 的 AI 辅助提款审核(FastAPI/PostgreSQL):缺失或被标记的文件转给信贷员,而不是自动通过。
Two-person approval for higher-risk draws behind a feature flag, with loan-level row locks, repeat-funding checks and hash-chained audit records; 103 financial tests on real PostgreSQL.高风险提款采用双人审批(功能开关控制),配合贷款级行锁、重复放款检查和哈希链审计记录;103 个资金测试在真实 PostgreSQL 上运行。
Transactional outbox and Temporal recovery for draw verification: retries, a watchdog that hands stuck runs to manual review, and a constraint against overlapping runs.为提款核验加入事务性 outbox 与 Temporal 恢复:自动重试、把卡住的任务转人工的看门狗,以及防止重复运行的约束。
A release gate that replaced a deploy workflow which hid failed migrations: verified backup, preflight checks, health check and rollback; 4/4 Docker rehearsals.发布闸门取代了会隐藏迁移失败的部署流程:经过验证的备份、预检、健康检查与回滚;Docker 演练 4/4 通过。
Rebuilt Nalu's bilingual booking flow with deterministic field resolution and explicit confirmation: 33/39 held-out cases fully correct, 0 invented values.用确定性字段解析与明确确认重建 Nalu 双语预订流程:留出集 33/39 全字段正确,0 编造。
POS settlement and refund APIs for an AWS-hosted restaurant stack: atomic transactions, sale-time price snapshots and logged voids.为部署在 AWS 上的餐厅系统构建 POS 结算与退款 API:原子事务、售出时价格快照、作废留痕。
Reservation APIs used by real guests: Twilio OTP, token-based self-service changes and SMS delivery-status tracking.真实客人在用的预订 API:Twilio 验证码、基于令牌的自助改期,以及短信送达状态跟踪。
Turned Chowbus sales statements into daily revenue records: 36 of 40 months reconcile to the statement totals; the rest are rejected, not guessed.把 Chowbus 销售对账单转为每日营收记录:40 个月中 36 个月与对账单合计一致,其余被拒收,不做猜测。
Google Ads and Meta spend importers feeding the revenue agent's code-based financial calculations.编写 Google Ads 与 Meta 花费导入器,供收入 Agent 做基于代码的财务计算。
Oct 2025 — Jun 2026
AI Engineer Intern · Polygraf.aiRemote, USA远程 · 美国
Built a PII detection and masking prototype for LLM inputs using Presidio, Hugging Face Transformers NER and rule-based checks.用 Presidio、Hugging Face Transformers NER 和规则校验,为 LLM 输入构建 PII 检测与脱敏原型。
Worked on a React/TypeScript and FastAPI governance dashboard for privacy policies, credentials and security incidents.参与 React/TypeScript + FastAPI 治理后台,覆盖隐私策略、凭据管理与安全事件处理。
Feb 2022 — Apr 2023
Founding Engineer · REAAISan Mateo, CA加州圣马特奥
Built a full-stack real-estate platform (Next.js/React, Node.js, MongoDB) with NextAuth authentication and Google Maps API property search, deployed through CI/CD on Azure.构建全栈房地产平台(Next.js/React、Node.js、MongoDB),NextAuth 认证与 Google Maps API 房源搜索,通过 CI/CD 部署到 Azure。
Sep 2023 — Jan 2026
MSc Computer Science with Artificial IntelligenceUniversity of York, UK (Online)英国约克大学(在线)
Jun 2022 — Dec 2022
Certificate in Full Stack Web DevelopmentUC Berkeley Extension加州大学伯克利分校进修部