BTE(交易引擎)工程师

BTE(交易引擎)工程师

ABFinance 是一家总部位于美国的企业,致力于构建面向未来的数字金融。我们的愿景是打造一个全面的金融生态系统,将数字资产、传统金融和日常资金管理无缝融合为一体的体验,并让所有人都能从中受益。 我们由一支由创新者、交易员和合规专家组成的团队创立,使命是通过安全、受监管的产品将数字资产推向主流市场。我们的旗舰生态系统结合了一个合规且安全至上的加密货币交易所(为散户及机构客户提供服务),以及一张支持日常消费、实现法定货币与数字资产之间平滑转换的借记卡,并以现货交易和收益生成产品等核心能力作为有力支撑。 岗位简介 我们正在寻找一位交易引擎工程师,负责我们交易所的核心 —— 订单生命周期、撮合引擎集成,以及支撑每笔交易的跨引擎基础设施 。这是一个底层系统职位:您将维护并演进业务中最关乎性能和正确性的核心代码,在这里,一个单独的 Bug 就可能影响真实的系统资金和交易所稳定性 。 岗位职责 1. 维护并演进核心订单管理系统,负责现货交易中从预验证、成本计算和保证金检查,到执行、成交处理和仓位更新的完整订单生命周期 。 2. 开发并优化跨引擎(撮合集成)层,构建并维护业务逻辑引擎与撮合核心之间的协议,以严格的正确性保证处理订单录入、取消、替换以及成交响应等状态机 。 3. 推动低延迟和高吞吐量的性能提升,分析热点路径,消除关键路径上的动态内存分配,应用无锁数据结构、零拷贝技术和缓存友好的内存布局,以实现并维持亚毫秒级的订单处理目标 。 4. 构建并维护风控和保证金计算模块,跨越全仓和逐仓模式,为正向、反向以及组合保证金账户类型实现初始保证金、维持保证金、强平价格和持仓成本逻辑 。 5. 支持多区域双活引擎部署,确保数据中心之间确定性的状态复制、序列一致性和快速故障转移,同时保证运行中的订单(in-flight orders)零丢失 。 6. 参与开发引擎可观测性和正确性工具,包括各订单路径的延迟直方图、状态机审计跟踪、保证金计算错误的异常检测以及混沌/回归测试框架 。 7. 参与轮值 On-call(值班),在时间压力下诊断并解决涉及订单状态分歧、仓位损坏或异常强平行为的生产环境事故 。 任职要求 • 5+ 年生产环境 C++ 开发经验,曾在交易所基础设施、交易系统或金融科技领域有相当时长的实践经验 。 • 熟练掌握现代 C++(C++17/20):移动语义、模板元编程、RAII 和以性能为导向的编程范式,不仅能编写正确的代码,还能编写快速、确定性的代码 。 • 强烈优先考虑曾直接在加密货币交易所、自营交易公司或传统券商中维护或扩展过交易引擎、OMS 或撮合系统的候选人 。 • 深入了解低延迟系统设计:无锁队列、内存池分配、NUMA 感知、避免在热点路径上进行系统调用,以及最小化分支预测错误 。 • 能够熟练掌握并发编程(不依赖关键路径上的锁),深入理解内存顺序(memory ordering)、原子操作和 C++ 内存模型 。 • 具备订单状态机设计经验 —— 能够处理具有完全可审计性的复杂状态转换 。 • 熟悉金融计算 —— 定点算术运算、缩放整数表示法(例如 e8, e4 价格/数量格式)、舍入模式,以及在交易环境中使用浮点数的危害 。 • 熟练使用 Protobuf / SBE / FlatBuffers 或类似用于低延迟服务间消息传递的二进制序列化技术 。 • 极其注重正确性,能够从容地推理和处理订单数量计算中的边缘情况、仓位过度平仓(position over-closure)以及大规模费率舍入问题 。 • 能够快速阅读并为高度陌生的代码做出贡献,引擎代码库庞大,开发速度要求具备自信的代码导航能力 。 • 在评估涉及面向用户行为的更改时,能够与交易、风控和产品团队进行清晰的沟通 。 加分项 • 具备仓位和保证金引擎经验 —— 熟悉全仓保证金、逐仓保证金、组合保证金或衍生品强平价格计算 。 • 熟悉只减仓(reduce-only)订单逻辑、ADL(自动减仓)以及风险保障基金机制 。 • 了解 Kafka 或基于内部环形缓冲区的事件溯源(event sourcing),用于订单审计日志和状态重放 。 • 能够熟练使用 Go 或 Java 作为辅助开发语言,用于编写工具、测试工具或辅助服务 。