这是用于演示写法的虚构简历。姓名、任职经历和成果均为创作,并非真实员工的履历。
徐天宇
曾在PostHog和Datadog负责事件摄取与日志处理,设计Kafka管道、租户隔离及恢复测试,将延迟和吞吐量改进与事件可靠投递联系起来。
工作经历
PostHog
EMEA地区远程办公 · 英国
软件工程师
2022年3月 - 至今
- 用Go构建将Kafka事件批量写入PostgreSQL的数据接入(ingestion)任务,通过幂等键和回放测试发现并修复超时后的重复写入。
- 通过在回放期间停止消费者验证分布式系统(distributed systems)的可靠性(reliability),限制Redis去重键的生命周期并设置队列背压,避免恢复过程耗尽内存。
- 以每秒20,000条事件的固定回放执行基准测试与性能剖析,改进Rust采集处理器。限制解压大小并在内存分配前验证,在保持Kafka持久化后应答的同时,将p95应答延迟从180ms降至112ms。
- 按项目和distinct ID设计多租户队列限制,将高流量客户隔离到溢出通道,通过Kafka偏移量与PostgreSQL身份映射验证数据完整性,使其他租户在3倍流量突增时仍满足延迟目标。
- 建立消费者滞后、重试量和端到端摄取延迟的可观测性面板。值班期间定位阻塞分区的异常事件,回放隔离批次并核对事件数后关闭事故,将复现测试加入灰度发布门禁。
- 为Kafka消费延迟与死信队列告警加入租户标识和重放命令,验证重复投递不会生成第二条记录。
- 主导基于租户隔离数据的Kafka采集重放测试,在保留其他租户顺序契约的同时解决PostgreSQL重复写入。
- 发布Go采集路径基准工具,通过分析内存分配热点,在相同回放负载下将峰值内存降低21%。
Datadog
伦敦 · 英国
软件工程师
2019年1月 - 2022年2月
- 在事件交给Go工作进程处理前,为Node.js生产者实现结构校验。通过契约测试重放不兼容载荷,避免异常事件进入Kafka,并保留失败请求用于诊断。
- 在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
系统设计
租户隔离 · 数据完整性 · 可观测性
交付与评审
负载测试 · 回归测试 · 事故恢复


