这是用于演示写法的虚构简历。姓名、任职经历和成果均为创作,并非真实员工的履历。
王泽楷
曾在PostHog和Datadog负责事件摄取与日志处理,设计Kafka管道、租户隔离及恢复测试,将延迟和吞吐量改进与事件可靠投递联系起来。
工作经历
PostHog
EMEA地区远程办公 · 英国
后端工程师
2022年3月 - 至今
- 在Node.js数据接入(ingestion)API中实现Kafka发布前的结构校验。通过PostgreSQL对账发现成功响应后的记录缺失,改为持久入队后确认,在超时回放测试中消除了数据丢失。
- 通过重现重试风暴和消费者延迟改善分布式系统(distributed systems)的可靠性(reliability),使用Redis过期去重键并隔离异常消息,避免阻塞正常流量。
- 以每秒20,000条事件的固定回放执行基准测试与性能剖析,改进Rust采集处理器。限制解压大小并在内存分配前验证,在保持Kafka持久化后应答的同时,将p95应答延迟从180ms降至112ms。
- 按项目和distinct ID设计多租户队列限制,将高流量客户隔离到溢出通道,通过Kafka偏移量与PostgreSQL身份映射验证数据完整性,使其他租户在3倍流量突增时仍满足延迟目标。
- 建立消费者滞后、重试量和端到端摄取延迟的可观测性面板。值班期间定位阻塞分区的异常事件,回放隔离批次并核对事件数后关闭事故,将复现测试加入灰度发布门禁。
- 沿API处理器追踪到发生竞争的数据库事务,缩小锁定范围,并为并发请求及重试路径增加测试。
- 主导通过并发请求测试改进PostgreSQL重试路径,在保留租户事件顺序的同时消除重复写入。
- 发布Kafka采集的Go负载测试,通过性能分析定位锁瓶颈,将p95请求延迟从310ms降低至190ms。
Datadog
伦敦 · 英国
后端工程师
2019年1月 - 2022年2月
- 为Node.js接入API构建Go负载测试客户端,重放超时和重复确认并核对PostgreSQL记录数。修复重试边界,通过验证避免恢复批次丢失或重复写入已接收事件。
- 在Datadog实现日志处理Go工作进程,按客户与重试窗口限制Redis去重键。回放含重复请求的200万条合成记录,通过PostgreSQL对账确认进程重启后已接收记录无遗漏。
- 以先扩展后收缩及预演回滚的方式迁移36张PostgreSQL表,将模式变更与应用发布分开,用相同测试数据验证新旧写入路径,完成迁移而未中断客户写入。
GoCardless
伦敦 · 英国
后端工程师
2017年7月 - 2018年12月
- 在支付软件团队添加Webhook签名、重复投递和乱序事件的契约测试,将手工发布检查替换为可回放测试数据,在下一次客户集成上线前发现重试回归错误。
重点项目
事件回放与恢复测试平台
英国伦敦
设计与实现
2024年2月 - 2024年6月
- 构建包含合成租户流量、可控Kafka故障和S3归档的本地事件回放工具,测量恢复时间并比较回放前后唯一事件数量,使CI能够复现丢失与重复投递问题。
- 在项目报告中发布测试数据生成器、基准设置和失败矩阵,对比严格排序与溢出隔离,并记录部署前必须修改的消费者假设。
- 主导通过隔离输入构建独立回归测试,解决边界故障并发布附预期输出的可复现测试包。
教育经历
University of Manchester
曼彻斯特 · 英国
计算机科学学士
2014年9月 - 2017年6月
相关课程:算法、操作系统、数据库、计算机网络
技能
语言与存储
Rust · Node.js · Go · Kafka · PostgreSQL · Redis
系统设计
租户隔离 · 数据完整性 · 可观测性
交付与评审
负载测试 · 回归测试 · 事故恢复


