Node.js 服务端简历范本

把 BFF、异步任务和数据库的责任边界写清楚,用可靠性指标支撑服务端经验。适合 4—7 年 经验 · 姓名、公司和联系方式均为虚构

韩景澄

Node.js 服务端工程师 · 北京 · 6 年经验

hanjingcheng@example.com · 136 0000 0000 · github.com/hanjingcheng

工作经历

某票务服务公司 · Node.js 工程师

2022.05 — 至今 · 北京

交易平台在开票高峰会出现短时流量尖峰。服务端组 8 人,我负责订单查询、支付状态回传和商家管理 BFF,和 Java 交易核心团队协作。

  • 订单聚合:用户订单页需要分别请求票品、座位、支付、退款四类服务,旧 BFF 串行调用导致 P95 超过 1.8 秒。按依赖关系并发查询,对非关键的活动信息设置超时降级,接口 P95 降至 620ms;同时明确部分失败时页面该显示什么,避免出现“空订单”
  • 支付回调幂等:第三方回调可能重复或乱序,原处理逻辑会多次写订单状态。增加业务幂等键与状态转移校验,将回调原文保存在审计日志;补测“先退款后收到成功回调”等边界,季度内没有再次发生重复发券事故
  • 突发流量治理:将购票资格查询的热点结果短缓存,把非关键营销查询隔离到独立连接池,并为队列消费者设置并发上限。大型开票场景下订单查询服务保持可用,峰值 每分钟约 9 万次请求时 P99 未出现持续上升
  • 排障工具:给核心链路统一 traceId,串起 BFF、消息消费者和交易服务;把事件循环延迟、堆内存、连接池等待列入看板。一次慢接口从报警到定位由过去约 40 分钟缩到 10 分钟以内

某企业协作公司 · 全栈工程师

2019.07 — 2022.04 · 杭州

团队提供审批和消息产品,前后端共 10 人,我负责通知中心接口及管理后台。

  • 为审批通知设计消息模板和发送队列,把同步邮件发送移出请求链路;接口平均耗时由 700ms 左右降到 140ms,失败通知可追踪和重试
  • 将零散的 Express 路由迁到 NestJS 模块,统一参数校验、错误码和权限守卫;迁移按业务域逐个发布,老客户端协议保持兼容
  • 和测试一起搭建接口契约测试,覆盖字段增删、分页与权限边界,减少前后端联调阶段的重复返工

项目经历

商家订单查询服务

2022.08 — 2023.09 · 某票务服务公司 · 主导开发

NestJS / PostgreSQL / Redis / OpenTelemetry

面向商家客服,支持按手机号尾号、订单号和场次查询订单。客服高峰时需要在数秒内答复用户,涉及个人信息必须按权限脱敏。

  • 原 SQL 把多个筛选条件写成 OR,索引命中不稳定。按查询入口拆 SQL,建立对应复合索引,并限制时间范围;千万级历史订单表的典型查询由 2 秒以上降至 180ms 左右
  • 查询结果按商家与场次短缓存,更新事件触发失效;客服查看用户联系方式需要单独鉴权并留下审计记录
  • 用 k6 回放脱敏生产流量,发现连接池容量设置过大反而让数据库排队恶化;按实例数量重新预算连接数,压测 P95 更稳定

异步通知与重试平台

2020.06 — 2021.12 · 某企业协作公司 · 核心开发

Node.js / RabbitMQ / Redis / PostgreSQL

订单状态变更后,要分别发送短信、站内信和邮件;供应商会限流,部分消息允许延迟但不能无声丢失。

  • 以业务事件 ID 加渠道作为幂等键,消费者成功后写投递记录,重复消费直接返回;失败按指数退避重试,超过次数进入人工可查看的死信列表
  • 给供应商接口加并发和速率限制,返回限流错误时延后而非立即重试。大促期间短信供应商故障持续 20 分钟,恢复后队列在一小时内消化,未造成重复发送
  • 运维台展示事件来源、尝试次数和最后错误,客服可按订单号追踪通知状态;通知类工单的平均定位时间从半天缩短到约 15 分钟

开票与对账 BFF

2023.10 — 至今 · 某票务服务公司 · 主导开发

NestJS / PostgreSQL / Redis / OpenTelemetry

商家后台的开票和对账页面要调用财务、订单、支付三个系统,页面首屏要请求 9 个接口,经常因为其中一个超时整页报错。

  • BFF 按页面聚合接口,非关键数据(统计卡片、提示信息)允许降级为空,关键数据失败才整体报错;首屏请求数从 9 个降到 2 个
  • 下游调用统一加超时、熔断和并发限制,财务系统抖动时不再拖垮整个 BFF 进程
  • 接入 OpenTelemetry,一次请求在网关、BFF 和下游服务的耗时串成一条链路;对账页 P95 从 1.6 秒降到 600ms 左右

个人优势

  • 6 年经验,从前端 BFF 做到独立负责订单与消息服务,熟悉 Node.js 在接口聚合、异步任务和数据一致性上的边界
  • 负责过日均百万级请求的服务,能从慢查询、事件循环阻塞、连接池和重试风暴四个方向排查延迟
  • SQL 和索引调优有实战:千万级订单表的典型查询从 2 秒以上降到 180ms 左右
  • 熟悉消息队列和幂等设计:事件 ID + 渠道做幂等键、指数退避重试、死信可人工处理,大促供应商故障后零重复发送
  • 压测会用真实流量:k6 回放脱敏生产流量,发现过连接池过大反而让数据库排队恶化的问题
  • 熟悉 NestJS 的模块、守卫和拦截器,把零散的 Express 路由按业务域渐进迁移,老客户端协议保持兼容
  • 重视可观测性:日志带 traceId 串起网关、BFF 和下游服务,告警按错误预算而不是单次报错
  • 和前端、客户端、运维一起制定过 API 契约、灰度策略和告警阈值,推动过接口契约测试
  • 关注数据安全:敏感字段单独鉴权并记录审计日志,日志输出前统一脱敏
  • 能写前端,理解页面对接口的真实需求,做 BFF 时会按页面裁剪字段、合并请求
  • 技术栈:Node.js、TypeScript、NestJS、PostgreSQL、Redis、消息队列、Docker、Kubernetes、OpenTelemetry、Prometheus

教育经历

北京交通大学 · 计算机科学与技术

本科 · 2015.09 — 2019.06

写法拆解

这份简历值得参考的 5 处写法

每一条都能在上面的简历正文里找到对应段落,改成自己的经历时照着这几处检查。

用这份范本创建
  1. 先交代流量峰值与接口性质,再写优化数字。

  2. 幂等设计说明业务键、状态转移和重复消息处理。

  3. 慢查询优化写索引与 SQL 调整,避免只有缓存。

  4. 服务治理写超时、重试、熔断和监控口径。

  5. 不要把交易核心的团队成果混写成自己负责的 BFF。

逐模块自查

改完每个模块,对一遍这两条

完整写作指南

个人优势

  • 用 2—3 句话概括岗位相关经验与最能证明能力的成果。
  • 避免“学习能力强”“认真负责”等无法验证的形容词。

工作经历

  • 先交代团队与业务,再说明你负责的范围。
  • 每条写清采取的做法与可核实的结果,数字注明口径。

项目经历

  • 说明项目为什么做、用户是谁以及你的职责。
  • 挑一个关键难点展开技术取舍,结尾写上线或验证结果。

技术能力

  • 只列面试中能解释原理和实践的技术。
  • 把最相关的技能放前面,避免按工具名字堆满整页。

教育经历

  • 学校、专业、毕业时间优先。
  • 课程和奖项只保留与应聘岗位相关的部分。

作品与开源

  • 提供可访问的作品或仓库链接。
  • 写清维护范围、使用者及持续迭代的证据。

常见问题

前端转 Node.js 如何写简历?

以实际负责的 API、数据和部署任务为主,不必隐藏前端背景,但要清楚服务端边界。

压测数字可以直接写吗?

写明环境、请求模型和 P95/P99 口径,避免把单接口极限值当线上流量。

BFF 项目怎么体现深度?

说明接口聚合、鉴权、降级与可观测性,而不是仅列 Node.js 框架名。

更多范本

继续看其他方向

全部 14 个方向