AI 全栈工程师 Full-Stack Engineer AI Native Base 迪拜/全远程(二选一) · 全职 · 3 年以上经验(参考) 有一件事值得先说清楚,因为它基本决定了你会不会喜欢这里:我们是真的靠 AI 工具在交付。过去一个月合并了七百多个 PR,非合并提交里超过一半带着 AI 协作者的署名。
也正因为如此,我们把"怎么确认它是对的”做成了制度:机器闸、独立验收、可观测性要求,都是写进流程里的硬约束。用得猛和管得严,在这里是同一件事的两面。
关于这个机会 ① “一人到底”是真的,含义也比听上去重。按模块切,每人前后端全包,模块内怎么实现由你自己定,不需要先写方案等人批。
代价是”到底"包含最后一公里:要一直推到独立验收通过、业务同事也真用过并认可,才算结束。动到多人共用的公共部分和数据库结构变更时,需要先出方案、和受影响的同事一起过一遍。
这部分我们不含糊,因为它们的影响面是全局的。 ② 把 AI 能力接进产品,是一个刚打开的工作面。
出于安全约束,今天线上的模型推理不开放工具调用;要让产品里的 AI 从“给建议的副驾”走到”能替客户办事”,这条线基本是从零搭起,是接下来一年最大的一块新增量。 agent 内核本身(记忆、知识检索、人设组装、模型调度)由专门的团队负责;你的活是把这些能力真正接进一个有客户在用的产品:接口契约、状态持久化、并发与限流、失败降级、人工接管与留痕、前端交互、用量计量。
这是全栈工程的活,不是模型调优的活。 ③ 有几道真正的工程题在等人。
多租户与组织层级正在落地(子树可见性、防环、读写两侧口径一致);再往后是两块已经排进路线的深水区——本地文件存储云化,以及把 IM 连接层从单进程拆成按租户调度的 worker 池。这些不是”以后可能会做”,是有排期的题。
④ 你的判断会被认真挑战,而不是被流程磨平。团队小,决定谁来做、怎么做的链条很短,提一个方案会得到具体的技术反驳,而不是一句"走个流程”。
对应地,你负责的模块从设计到线上表现都由你自己 own 。这是"一人到底"真正的分量。
岗位职责 日常是混着来的,不是分阶段的。现网产品:功能交付与线上运行 ① 承接完整功能模块的端到端交付:需求拆解→接口设计数据库结构与迁移→后端实现→前端页面→上线观察。
前端在这里是与后端同量级的主战场,不是"接口联调之外顺手写的页面”。 ② 把问题收到根上。
跨语种的内容判定、消息的幂等与顺序、长连接断开后的状态恢复。这类问题的共同点是,表面症状只是一个点,真正的工作是把同一类情况一次梳理干净。
我们看重的是后者。 ③ 持续的架构演进:拆分过大的模块、收敛重复实现、为关键路径补上自动化测试与可观测性。
在有存量、有客户、不能停机的系统里安全地做这件事,比在空地上重建更考验判断。这也是我们最看重的能力之一。
Go 重写:在新仓里承接模块 ④ 按模块承接后端重构:读懂现网这块业务真正的行为,在新架构里重新实现它。迁功能不迁文件,只带走经过验证的业务语义。
⑤ 在新架构的硬约束下工作,并参与把它建起来:状态只落 PostgreSQL 一层(锁与租约进库,与被保护的数据同一个事务)、一张表只归一个模块、状态转换只走中心化的统一入口。约束本身可以讨论,但不能绕——它们是写死在 CI 里的。
⑥ 维护现网已有的 Go 组件:IM 协议连接器由主进程拉起、以长连接回程,它们的可靠性同样归你负责。运维、部署、稳定性、并发 ⑦ 私有化交付的工程侧:客户开通、实例部署、版本升级与回滚、现场技术支持。
这是这个岗位真实的一大块工作量,不是加分项里的一句话。 ⑧ 并发正确性是日常而不是专题:幂等与去重、认领竞态与租约、崩溃恢复、断线重连与消息顺序、跨进程状态一致性、限流与配额、优雅停机。
在多账号、多平台、长连接的场景下,这些是每天都要做的设计判断,不是偶尔遇到的难题。 ⑨ 可观测性以"拿到告警的人知道该做什么”为标准:告警要能定位、能分级、能指向明确的下一步动作,而不只是把底层错误透传出去。
你会接手一个什么样的系统 ① 一个有真实客户、持续演进的生产系统。过去一年我们完成过几次幅度不小的改造:前端从原生 JS 整体重写为 React 、存储从文件迁到 PostgreSQL 、鉴权从单一 token 重做成细粒度权限体系、账号与群的状态流转收敛到带 CI 守卫的统一入口。
我们干过这类事,知道它要花多少力气,也知道它值得。 ② 一个正在成型的 Go 新栈。
单二进制后端加全新前台,模块边界、状态层唯一化、路由注册表、架构守卫都已写死成 CI 规则。它的设计意图很明确:把这些年验证过的东西带走,把不该复制的访问模式留下。
你来的时间点,正好赶得上参与真正的业务实现阶段。 ③ 一条外部依赖密集、边界条件全是真的链路。
IM 平台长连接、消息撤回与媒体补拉、第三方接口超时、跨时区跨语种的内容规则。这些不是面试题里的假设,是每天要处理的真实工程约束。
④ 一套机器执行的工程纪律。我们的底线不靠自觉,也不靠写在某个文档里:不是每个人都用同一套工具,所以每条底线都必须有一个工具中立的载体——一条 CI 检查、提交模板里的一个必填栏,或者某个具体的人必须做的动作。
每条守卫我们都会先验证它确实拦得住违例,而不是默认它有效。 ⑤ 一条独立于作者的验收链。
每个交付要过独立的技术验收,再由业务同事按业务语言确认一遍。自动运行的改动还要回答三个问题:怎么触发它、怎么看到它真的跑了、跑错了从哪看出来。
任职要求(必备) ① 你能用 AI 工具把活真正干完,并且知道怎么验证它。我们不考核你是不是纯手写代码,考核的是你会不会用、会不会验证、会不会在 AI 给错答案时自己发现并纠正。
我们会请你说清楚:你提交的某段 AI 参与生成的代码具体做了什么、你用什么证据确认它是对的、以及你有没有过一次"AI 给了一个很像对的错答案、被你自己发现并纠正”的经历。这是我们最看重的一条。
② 3 年以上后端或全栈开发经验,独立主导过完整模块或产品的交付上线,并为它上线之后的表现负过责。 ③ 熟练的 TypeScript,以及 React 技术栈的真实交付产出。
能独立完成有状态、有交互复杂度的功能页面,而不仅限于接口联调。 ④ 扎实的 PostgreSQL 工程能力:事务与隔离级别、索引与执行计划、schema 迁移方案、行级锁与租约、用 CAS 做并发安全的状态流转。
这条是硬要求,因为新架构把状态收敛到了数据库这一层。 ⑤ 并发与分布式场景下的工程判断力:幂等、重试、超时、崩溃恢复、顺序保证,对你是具体的实现选择而不是概念名词。
能说清"为什么这里需要一把分布式锁”,和能说清”为什么这里不需要”,同样重要。 ⑥ Go:已经在写当然好;没写过也可以投。
我们现在写 Go 的主力也是从 TypeScript 转过来的。前提是你拥有强类型语言(Go/Java/C#/Rust/C++等)的扎实工程基础,并且愿意把 Go 变成自己的主力语言。
工作方式上还需要:接受迪拜现场办公或全远程其中一种,并能与团队保持稳定的时区重叠。还有一句直白的:我们要的是给结论的人。
列了两个方案不给推荐,等于把决策外包给信息比你少的人;"环境里没有测试账号所以没验"在这里也不是一个可接受的结论。前提缺什么,先想办法自己造出来。
加分项 ① 做过私有化/本地化部署的产品:客户开通、版本升级与回滚、现场技术支持——你知道"交付一个实例”和"上线一次"的区别在哪里。 ② 在 Telegram / WhatsApp / LINE 等 IM 平台做过深度二次开发,处理过长连接、断线重连、消息可靠投递类问题。
③ 调用大模型 API 上线过面向客户的功能:结构化输出、流式返回、失败降级、用量计量,做过效果评测更佳。 ④ 主导或深度参与过一次语言栈/架构重写,能讲清楚哪些东西你坚决没有带过去、为什么。
⑤ 有创业经历,或独立开发并运营过 App/产品(哪怕规模很小)。你对"从 0 到有人用"的全流程有真实体感。
⑥ 有编写自动化测试的习惯,并参与过可观测性(日志/指标/告警)建设。做过变异测试更好:把守卫改坏、验证对应用例确实会红,是我们判断一条防线是否真的有效的标准做法。
薪酬与福利 ① 年终奖金:相当于 1-3 个月的月度现金,于年底发放,依据个人绩效与公司业绩确定。 ② 年度现金总包(含年终奖):远程 26-45 万;迪拜现场 39-90 万。
③ 期权:表现优秀者可获得期权奖励。 ④ AI 工具全额报销: Claude Code 、Codex 及模型 API 费用由公司承担。
⑤ 远程与弹性工作制:以交付结果为准,不考核在线时长。 ⑥ 迪拜个人所得税为零,现场岗位的现金收入即为到手收入。
⑦ 住宿与工作签证由公司安排并承担费用(迪拜现场岗位)。 ⑧ 薪资币种为人民币。
具体档位依据面试评估与实际经验确定。投递方式 简历投递至 info@kapibala.ai,邮件标题格式:应聘 AI 全栈工程师-姓名。
除简历外,请附一段 200 字以内的说明:你主导过的一个模块,它真正的难点在哪里,以及你用什么方式确认它是对的。如果这个过程里 AI 工具帮了忙,也请顺带说一句你是怎么确认它没给你挖坑的。
这段内容我们会认真读。