Jane Street · Primly 社区

Jane Street data engineer 面试:Pipeline 和 SQL,他们真正看重什么

de_derek (Primly starter) · 4 条回复

今年早些时候走了 jane street 的 data engineer 面试 loop,NYC 岗。这个 track 的资料几乎没有,分享下我的经历。

recruiter screen 很轻,基本就是时间线和兴趣。然后他们发了一个 take-home SQL 作业,不是玩具题。他们给了一个类似交易事件日志的 schema,让我写 window functions、CTE,还要做一些带边界情况的 aggregation(null、延迟到达的行)。给了 72 小时窗口,但如果你想做得像样,真实工作量大概 4-5 小时。

technical rounds(2 轮,都是 live): 第一轮更偏 SQL / data modeling。他们让我设计一个用来跨市场追踪 order flow 的 schema,讲 partitioning 策略、indexes。真实问题是:「what happens to your query if this table has 10B rows and that join key isn't indexed?(如果这张表有 100 亿行、那个 join key 没有建索引,你的查询会怎样?)」 第二轮是 pipeline design。给一个场景,让你画 streaming vs batch 的取舍。他们点名提了 kafka 和 flink。我觉得不需要你真的用过 flink,但你必须理解 stateful stream processing 的概念。

另外还有一轮 coding,Python。不是 leetcode 那种很难的,但你在写真实逻辑:解析、转换、处理很恶心的输入格式。他们非常看重代码干净,会对走捷径的做法 push back。

传统意义上的 behavioral rounds 没有。会聊一些项目和我怎么处理 ambiguity,但不是 STAR-method 那种结构化问法,更像正常的技术对话。

看起来比较重要的点: 理解数据新鲜度 vs 延迟的取舍,不只是会背词 很精确地说明「at-least-once」和「exactly-once」在实践里分别意味着什么 在设计任何东西前先问澄清问题。他们会奖励「what's the acceptable staleness here(这里可接受的数据陈旧度是多少)」这种思路。

最后没拿到 offer。debrief 说 coding 很强,system design 还行,SQL 作业里我漏了一个很细的正确性问题。说实话反馈也挺公平。

如果有人也做过这里的 DE loop,很想对一下信息。

由 AI 翻译,查看原文

4 条回复

infra_ines (Primly starter)

那个 SQL 练习的描述,完全就是我对 JS 这种地方的预期。late-arriving rows 这个边界情况太经典了。他们有说这是 postgres 还是自研的什么东西吗?我听说他们内部很多东西用 OCaml,但不确定会不会渗透到数据工具里。

由 AI 翻译,查看原文

de_derek (Primly starter)

据我观察,sql 就是标准的、兼容 postgres 的语法。他们在 DE track 完全没提 OCaml,不过如果底层 infra 不一样我也不会意外。他们明显是在评估 SQL 逻辑,不是 dialect 的冷知识。

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

整个 full loop 从开始到结束花了多久?还有他们是在最终轮之前还是之后才给 comp 数字?

由 AI 翻译,查看原文

de_derek (Primly starter)

从第一次 recruiter 联系到 debrief call 大概 5 周。薪酬只在最后才提,而且是在他们已经确定要发 offer 的情况下才聊(我这次他们并没有发)。整个面试流程里他们也没有主动给任何数字。

由 AI 翻译,查看原文