跳到正文
HA_

高级后端工程师 · 分布式系统与多租户架构

Hassan Abrar

在压力之下依然稳定的系统。

我使用 Java/Spring Boot 与 Node.js/TypeScript 设计并运维事件驱动的多租户后端,涵盖沙特大型企业的薪资系统到实时广告欺诈拦截。

可接受远程工作 · 与欧洲 / 美国东部时区重叠

01 / 数据

来自生产环境的数字

5+

年构建与运维生产系统的经验

1000+

个隔离租户数据库,可用性 99.9%

12

个从单体应用拆分出的生产微服务

1万+

名实时聊天系统并发用户

  1. 01

    建模

    领域边界、租户模型与故障模式。

  2. 02

    构建

    契约清晰的事件驱动服务。

  3. 03

    运维

    仪表盘、告警与平稳发布。

FIG. 01 / 我的工作方式

02 / 架构

不同的问题,深思熟虑的架构。

01 · 独立项目 · 唯一架构师兼运维者

ClickFortify

面向 Google Ads 与 Meta Ads 的实时广告欺诈检测

问题 · 广告主的预算被机器人、VPN、代理和数据中心流量消耗。无效点击必须在广告投放期间就被检测并排除,而不是几周后才在报告中发现。

约束

  • 每个广告主都是一个隔离的租户
  • 排除规则必须同步回 Google Ads 和 Meta 广告账户
  • 检测在实时流量上持续运行

关键决策

  • 基于 NATS 的事件驱动微服务,使采集、评分和同步可以独立扩展
  • 使用 Redis Bull 任务队列,为广告平台 API 调用提供重试和背压
  • 结合设备指纹识别以及 VPN、代理和数据中心过滤的行为评分
Ad clickCollectorNATSScoringAds syncTenant DBs
FIG. 02 / 系统草图 · ClickFortify

成果

  • 自动将 IP 排除规则同步回广告主的广告账户
  • 在近乎零停机的情况下,完成 500+ 个租户数据库的线上生产数据库迁移

技术栈

Node.jsTypeScriptNATSRedis BullMongoDBNext.js
FIG. 02B / 实时流量防火墙 · 模拟

02 · 高级后端工程师(合同制),通过 Mission.dev

Masdr payroll platform

面向沙特大型雇主的企业级金融科技与薪资平台

问题 · 大型雇主的薪资发放、银行验证和支付都通过同一个平台完成。一条消息丢失或重复,就意味着有人被错误地支付。

约束

  • 多租户、多数据库架构
  • 面向合作伙伴和银行的严格 API 治理
  • 版本发布需在 WebLogic 上依次经过 DEV、UAT 和 PROD

关键决策

  • 采用异步、事件驱动的 JMS 管道处理薪资计算、银行验证和服务间通信
  • 在 Apigee 上管理 API 生命周期:限流、认证与授权策略、请求/响应校验
  • 针对薪资和验证故障构建 Splunk 仪表盘与告警
ApigeePayroll svcBank verifyJMSTenant DBs
FIG. 03 / 系统草图 · Masdr payroll platform

成果

  • 缩短了生产环境薪资与验证故障的诊断时间
  • 随着新的企业租户接入,持续扩展租户配置与隔离能力

技术栈

JavaSpring BootJMSApigeeSplunkJenkinsIBM UrbanCode DeployWebLogic

03 · 高级软件工程师

Southville multi-tenant platform

从一个单体应用到 12 个生产微服务

问题 · 所有客户共用一个单体应用:一个慢模块或一次糟糕的部署就会影响所有租户,而且新租户接入需要手工操作。

约束

  • 在拆分过程中保持产品持续运行
  • 每个租户都需要严格的数据隔离
  • 日志分散在 GCP 和 AWS 上

关键决策

  • 按领域边界拆分为 12 个服务
  • 每个租户独立数据库,配合动态 schema 解析与自动化开通
  • 用于薪资发放和考勤的 JMS 事件管道
  • 在 Google Cloud Logging、AWS CloudWatch 和 Splunk 之间实现统一可观测性
MonolithGatewayBookingPayroll+10 moreTenant resolver
FIG. 04 / 系统草图 · Southville multi-tenant platform

成果

  • 1,000+ 个隔离租户数据库,可用性 99.9%
  • 通过 Redis 缓存和查询优化,API 响应时间提升 40%+
  • 故障发现与解决时间缩短 60%
  • 预订平台每日处理 10,000+ 笔交易

技术栈

NestJSNode.jsSpring BootMongoDBPostgreSQLRedisJMSDockerKubernetes

04 · 构建者

VoxRange

语音 AI 与通话分析基础设施

问题 · 语音产品需要实时的电话接入、转写和自然语音合成,同时又不想完全依赖按分钟计费的第三方 API。

约束

  • 实时音频链路
  • 自托管且容量有限的 GPU

关键决策

  • 带语音转文本的实时电话处理管道
  • 在自托管 GPU 上训练的定制文本转语音模型
CallTelephonySTTCustom TTSGPU
FIG. 05 / 系统草图 · VoxRange

成果

  • 覆盖电话接入、语音转文本和定制文本转语音的生产级语音 AI 基础设施

技术栈

TelephonySpeech-to-textText-to-speechSelf-hosted GPU

05 · 软件工程师

Lytics · PEMRA

为巴基斯坦电子媒体监管局(PEMRA)提供的媒体监测与情报系统

问题 · 监管机构需要监测各频道的直播内容,并快速查找、剪辑和审核乌尔都语与英语内容。

约束

  • 持续的直播视频接入
  • 乌尔都语与英语双语内容

关键决策

  • 直播视频接入与剪辑
  • 自动化的乌尔都语与英语转写和翻译
  • 元数据标注,为实时监管仪表盘提供数据
Live TVIngest + clipTranscribe ur/enTaggingDashboards
FIG. 06 / 系统草图 · Lytics · PEMRA

成果

  • 用一个系统完成广播内容的监测、搜索与监管

技术栈

Node.jsReactMongoDBPostgreSQL

其他作品

03 / 经历

工作履历

  1. 2025年5月 – 至今 · Remote · Riyadh, Saudi Arabia

    Senior Backend Engineer · Mission.dev

    客户: Masdr

    为沙特阿拉伯大型雇主服务的企业级金融科技与薪资平台。

    • 在多租户、多数据库的薪资架构中,负责 Spring Boot 微服务的端到端功能交付。
    • 设计用于薪资处理、银行验证和服务间通信的异步 JMS 管道。
    • 在 Apigee 上管理 API 生命周期:限流、认证策略以及请求/响应校验。
    • 构建 Splunk 仪表盘与告警,缩短薪资与验证故障的诊断时间。
  2. 2023年2月 – 至今 · Lahore, Pakistan

    Senior Software Engineer · Southville Solutions

    • 主导将单体应用拆分为 12 个生产微服务。
    • 为 1,000+ 个隔离租户数据库设计多租户基础设施,可用性达 99.9%。
    • 构建基于 NestJS/MongoDB 的预订平台,每日处理 10,000+ 笔交易;API 响应时间提升 40%+。
    • 在 GCP Logging、CloudWatch 和 Splunk 之间统一可观测性,故障解决时间缩短 60%;指导 5+ 名工程师。
  3. 2021年5月 – 2023年1月 · Lahore, Pakistan

    Associate Software Engineer · Stack Intel .IO

    由软件工程实习生(03/2021 – 05/2021)晋升。

    • 基于 Node.js、WebSockets 和 Redis Pub/Sub 构建实时聊天,支持 10,000+ 并发用户,送达率 99.8%。
    • 使用 Socket.io 和 Redis Streams 实现 sub-100ms 推送通知;集成 Stripe,零安全事故。
    • 使用 Jest、Mocha 和 Supertest 将测试覆盖率提升至 85%,缺陷减少 45%。
  4. 2021年10月 – 2022年4月 · Lahore, Pakistan

    Developer Head · MSP Community, University of Lahore领导经历

    • 负责开发者方向:为学生工程师组织技术分享并提供实践指导。
  5. 2017 – 2021 · Lahore, Pakistan

    BS Computer Science · The University of Lahore教育背景

    • 计算机科学理学学士。

04 / 技术索引

我常用的工具

编程语言
JavaTypeScriptJavaScriptPythonSQL
后端
Spring BootNode.jsNestJSExpress.jsFlaskDjango
架构
MicroservicesEvent-drivenMulti-tenantDistributed systemsRESTGraphQLWebSockets
消息与流处理
Apache KafkaNATSJMSRedis BullSocket.io
数据库
PostgreSQLMySQLOracleMongoDBRedisDynamoDB
云与 DevOps
AWS (EC2, S3, Lambda, RDS)GCPDockerKubernetesJenkinsGitHub ActionsIBM UrbanCode Deploy
可观测性与安全
SplunkCloudWatchGoogle Cloud LoggingELKOAuth2JWTApigee
前端与移动端
ReactReduxTailwind CSSReact NativeExpo

05 / 随笔

首先是工程师,习惯性地做架构。

悬停以显示清晰图像 · 触屏设备请轻点

FIG. 00 / 随笔 · 31.5204° N · 74.3587° E · LAHORE

我是一名高级后端工程师,拥有 5+ 年在企业金融科技、广告技术和高并发 SaaS 领域构建与运维生产系统的经验。我同时深耕两大后端生态——Java/Spring Boot 与 Node.js/TypeScript,擅长事件驱动微服务、多租户架构和实时数据管道。

我主导了将单体应用拆分为 12 个生产微服务的工作,为 1,000+ 个隔离租户数据库设计了多租户基础设施并保持 99.9% 的可用性,还指导过 5+ 名工程师。我远程与沙特阿拉伯、欧洲和北美的团队合作。

我会说的语言
英语 · 乌尔都语
正在探索
语音 AI 基础设施:实时电话系统、语音转文本,以及在自托管 GPU 上运行的定制文本转语音。

06 / 文章

来自生产环境的笔记

全部文章 →

07 / 常见问题

一些有用的解答

你承接哪类工作?

高级后端职位和合同项目:设计并构建事件驱动服务、多租户平台,以及将单体应用拆分为可独立部署的服务。

你在哪里?能覆盖哪些时区?

巴基斯坦拉合尔(UTC+5)。我远程工作,并与欧洲和美国东部团队保持工作时间重叠;曾与沙特阿拉伯、欧洲和北美的团队合作。

你偏好哪种技术栈?

Java/Spring Boot 和 Node.js/TypeScript(NestJS)我都在生产环境中使用,消息方面用 Kafka、NATS 或 JMS,数据方面用 PostgreSQL、MongoDB 或 Redis。具体选择取决于团队和问题本身。

你能融入现有团队和代码库吗?

可以,这正是我大部分的工作方式。我会先通过代码评审和架构讨论融入团队,然后端到端地负责功能开发。

你能协助可观测性建设和处理生产故障吗?

可以。我曾构建 Splunk、CloudWatch 和 Google Cloud Logging 仪表盘与告警,将故障解决时间缩短了 60%。

我们如何开始?

预约一次 30 分钟的通话,或发邮件告诉我你在构建什么、痛点在哪里。我会在一天内回复。

08 / 联系

有需要扩展的系统?让它稳稳撑住。

告诉我你在构建什么、痛点在哪里。我通常会在一天内回复。