因为NDA 所有面经不会透露题目. 我觉得大多数题目都是interviewer 自己的project的,透题是没有任何用处的. 更重要的是知道什么是重点什么,什么只需要懂个大概, etc…
个人背景Stats MS + 1.5 yr Data Science工作经验 (data mining + analytics) 这次主要跳槽的目标是找一个hardcore ML的工作(以modeling为主, 非analytics, 非experimentation, 非inference, 非data pipelining). 这种position在各个公司有自己的叫法, 比如data scientist, ML Engineer, Software Engineer in ML, etc… 由于楼主背景有限, research scientist完全没有尝试.
总结起来 所有的面试分下面几类:
纯leetcode style coding: 最无聊但也最好准备 楼主很懒 一共就刷了不到60题… 也因为leetcode 挂过面试ML coding: 白版实现经典算法. 少量推公式. Follow up 一般是问如何提升这个基础算法, 和如何scale这个基础算法ML system design: 用ML solve 一个business problem. 做一个plan 从define business metric 到 brainstorm feature, modeling, offline/online evaluation, data pipeline 设计等等
下面是面经 以结果来分
简历拒:
Robinhood, 超喜欢他们的产品, 其实并不知道他们有什么ML, 无奈被拒简历…AirBnB, 感觉他们家的data culture很棒, 可惜简历被秒拒… (海投一天后直接拒掉…)
withdraw:
Lyft: 面了一轮hr screen和电面. 做到take home发现position偏analytics 就withdraw了. 貌似他们家所有data scientist 都是analytics 和experimentation. 做ml的是research scientist 貌似bar很高Pinterest: 投了ML engineer, HR screen 问愿不愿意做analyst, withdrawFacebook: Data scientist, analytics 同上
On-site:
Facebook (Data Scientist, Infrastructure):
挂. 楼主的第一个试水面试. 比剩下所有的可能早4-5个月. 真正的0准备 onsite…ds infrastructure 主要是做关于hardware infra 和software infra 方面的forecast, regression 和监控. 感觉这个position 要求很全面. modeling + deployment + data pipelining + reporting 好像都得会,还得和很多不同的team 合作. 非常重time series. 然而楼主完全不懂time series一轮leetcode coding, 2轮teamwork/collaboration/behavior (就是partner team), 一轮ml system design (直接做interviewer最近的一个project, 非常全面, 从当场推公式到ab testing 到implementation), 一轮 SQL + ML basics
Thumbtack (data scientist):
挂. 挂了之后HR还会提供feedback. 独此一家.感觉因为是startup, 做的东西比较杂 包括recommendation, spam之类的各种.Thumbtack是我这次找工作体验最好的公司. 流程设计的非常好 1轮project deep dive (1小时present一个自己的project) + 一轮ml system design + 1轮hands on modeling (当场发数据给你建模, interviewer在旁边看) + 1轮coding (需要run + 过test case, 1小时建一个mini search engine 非常酷)
Google (Software ML Engineer):
Offer. 2轮leetcode coding + 2轮ml coding + 1轮ml system design.Google 面试流程特别长, 最后我还在team match的时候 因为感觉大部分team的是ads 不喜欢就withdraw了. 因为我Google 投的晚并且要赶上其他公司, 所以recruiter直接帮我skip 了电面, 直onsite. 有类似情况的同学可以提这个要求.个人觉得Google的面试流程(junior position) 不够吸引人. 因为只能见到hiring manager, 给的information也不足. 其他公司的话onsite 基本半个team 都认识了. 同时team match的variance太大, 有可能去assistant 或者brain 也有可能做legacy product… 听说senior 一些的可以先team match 再hc
Credit Karma(data scientist):
Offer. 主要是做recommendation. 我觉得CK 可能是湾区最stable的unicorn. 已经proftable很多年. 上市的话应该很稳. 他们家的comp非常好 我觉得是高于FLAG的…1轮ML coding 2轮ML system design, 1轮ML basic, 1轮 hiring manager behavior
Etsy(data scientist):
Offer. 主要是做search & recommendation.团队15个人左右. 老大很牛. 工作是applied ML + research. 团队实力很强 能发顶会paper. 全公司唯一的一个ML team1轮ML 推公式, 1轮 hiring manager behavior, 2轮ml system design
Twitter(ML Engineer):
Offer. 最后决定去. 主要是做Deep learning. 和楼主兴趣完美契合4轮面试. 每一轮都是2个interviewer的panel. 1轮 leetcode + 1轮ML system design + 1 轮ML coding + 1轮 hiring manager behavior感觉twitter每个engineer的个人impact比FANG大不少
等着被挂: OpenAI. 偶像级别公司. 超级酷炫. OA巨难 1小时的问题 结合了low level coding, statistics, probability 需要推公式+implementation 绝对是我做过的最有意思的coding problem. 貌似他们公司很小. Recruiting email都直接是来自co-founder的.
总结一下经验
Google在想去的公司里面 一定要最先面. 因为他们真的很慢.公司越大, 在面试里面coding的比重越大fancy 的ML model 不一定要会. 但是基础一定要很稳. state-of-the-art 的model 总共被考过1,2次 但是k-means, knn几乎每家必考. 所以implementation, theory, 或者优化必须非常熟悉. 如果一个junior的ML engineer能展示扎实的ml基础和快速进入某一个sub-field的能力, 就足够拿到offer要想清楚自己真正想要什么. 是想要brand, comp, research, 还是 impact, 具体的technical field, business/industry, technology 还是work life balance. 很少能有一个position给你以上所有.