Bloomberg 26NG SDE 面试复盘|Phone + VO + EM 全流程详解

41次閱讀
No Comments

这次是 Bloomberg 26NG SDE 的完整流程,从 Phone 到 Offer 大概一个月出头,整体节奏很快,而且每一轮都非常扎实。面试风格偏工程能力 + 沟通表达 + 分布式系统基础,没有特别刁钻的脑筋急转弯,但深度不低。

Bloomberg 26NG SDE 面试复盘|Phone + VO + EM 全流程详解

Timeline参考

10.9 Phone Screen
10.29 VO1 + VO2 + HR
11.4 EM
11.6 HR Offer call

基本每一轮结束后都很快推进,反馈效率很高。

Phone Screen面

Phone 面整体偏基础。行为问题包括 Why Bloomberg 和讲一个最有挑战的项目,深挖不算特别狠,但会追问细节。Coding 两题,一题是 LC easy,给定一个 social graph,找第一个满足条件的伙伴,本质是图遍历加条件筛选;另一题是 LC 2062,统计满足条件的子串。难度不高,主要看写代码是否稳定,边界是否考虑清楚。

VO1

VO1 开始强度明显提升。依然是先自我介绍,然后深挖项目,问得比较细,比如设计决策、遇到的 trade-off、性能瓶颈怎么解决。

算法题是一个建模类问题。场景是有很多 TV 剧,每个剧 10 集,每播一集都会有用户流失。要找到第 n 集,使得在这一集之后,依然有 70% 的用户可以看完全部 10 集。本质是一个概率模拟问题,要清楚每一集之后的留存比例如何累积,怎么建模用户流失。

follow-up 很典型,考察边界和抽象能力。比如如果第一集用户就全流失怎么办?如果所有用户都能看完 10 集怎么办?还有一个是代码优化问题,让你把一个 if statement 改成不需要显式逻辑判断的写法,考察的是你对表达式和结构的理解,而不是语法。

这一轮聊得很自然,最后留了 10 分钟反问,我问了很多 wlb 和通勤相关问题,面试官也聊得很真诚,当场约下一轮。

VO2

题目是:有一个 Tesla Equity,trader 可以更新每日价格或者删除最新价格;analyst 可以获取最新价格、最大价格和平均价格,所有操作必须 O(1)。

这题本质就是一个支持 push / pop / getLatest / getMax / getAverage 的数据结构。常规做法是用一个 stack 存价格,用辅助 stack 存当前最大值,同时用一个变量维护 prefix sum,这样平均值也能 O(1) 算出来。

但这题的加分点不在算法,而在 OOD。推荐把 equity、trader、analyst 都抽象成 class,把职责拆清楚。比如 equity 负责存储和状态维护,trader 负责修改,analyst 负责查询。面试官明显更喜欢这种结构化表达,而不是把所有逻辑堆在一个类里。

follow-up 是口述 LC 295(数据流中位数),只需要讲双堆思路,不要求实现。主要看你能不能清楚解释为什么这么设计。

这一轮也留了反问时间,聊了团队具体做什么,技术栈是什么,氛围怎么样,也是在当场约 EM。

HR 面

这一轮基本是行为题集合。问了一个和队友有分歧的经历,问了一个完全从零学习新东西的经历,问 Why CS,Why Bloomberg,还有一个是讲一个简历上没有写的事情。整体节奏比较轻松,但回答一定要有结构,不要讲散。

HR 最后表示推进到 EM,但当天排不开。

EM 面

EM 面是整场 hardest。重点是 System Design,要求设计 Kafka。

面试官从最基础的 components 开始问,包括 producer、consumer、topics、partitions、brokers 这些概念都要讲清楚。然后问你如何把发送消息这个能力提供给 producer,我当时的思路是把 retry 机制和消息封装成一个 SDK,对外提供统一接口。

接着问 Durability、Consistency、Availability 怎么保证,这里就是分布式系统基础。比如 replication、ack 机制、leader-follower 架构、数据刷盘策略等等,都要能讲。

有一个问题当时没答好。场景是 producer1 给 broker1 发消息,producer2 原本打算给 broker2 发消息,但因为网络问题发到了 broker1,此时如何保证消息顺序?我当时没想清楚。EM 给的大致思路是基于 raft 选出 leader,由 leader 决定消息顺序,其他 broker follow leader 的顺序即可。核心是顺序必须由一个中心权威来裁定。

面试结果

整体感受是,Bloomberg 面试不浮夸,但非常实在。算法难度中等偏上,数据结构设计偏工程思维,EM 轮对分布式要求不低。如果你基础扎实、表达稳定,其实是一个非常公平的流程。最后两天后收到 HR Offer call,流程算是比较顺利结束。需要 Bloomberg / 大厂 VO / EM 高频题整理,或者希望做针对性 VO助攻 的,可以找 programhelp,对各大厂的SDE 全流程都非常熟。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
正文完
 0