Chapter 70 Company Summary
70.1 Linkedin
https://engineering.linkedin.com/blog
500M register users (From https://press.linkedin.com/about-linkedin)
Number of datasets: 10k+
Data volume generated per day: 100TB+
Total accumulated data: 20PB+
Multiple datacenters
Thousands of nodes per Hadoop cluster
70.1.1 Gobblin
https://github.com/linkedin/gobblin
Over the years, LinkedIn’s data infrastructure team built custom solutions for ingesting diverse data entities into our Hadoop eco-system. At one point, we were running 15 types of ingestion pipelines which created significant data quality, metadata management, development, and operation challenges.
https://engineering.linkedin.com/blog/2017/02/building-venice-with-apache-helix
70.2 Facebook
https://www.facebook.com/Engineering/
Kevin说要准备点高质量的问题. Behavior question也非常重要.
http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=165044
面试官访谈系列(https://quip.com/9dhIAWYmc3kD)
Y君 (华人,在Apple工作多年,在FB就职约1年多,senior engineer)
- 给出hire或no hire意见的基准是什么? “题目做出来”
- 所谓“做出来”是怎么样一个表现?
“比如strstr,如果你给我是一个O(mn)的解然后就完了,那肯定不行”
“能做到rolling hash就满意了” “或者可以暴力解,然后至少说下你懂kmp或者rolling hash”
“要是你能背出来kmp也是你本事,但是你没法给我讲懂,w”
- 面试过程中磕磕碰碰会不会减分?
“我觉得很正常,实际工作中就是这样的,一下子写完才不正常” - 有没有可能前10分钟就大致确定结果了?
“有可能啊,我招ios engineer,问几个基础问题,马上就知道功底了” - 如果面试过程中闷头写代码没有交流思路会不会减分?
“我知道有的interviewer会减分,因为觉得你communication不好.我的话会提醒他说你要讲一下思路再写”
T君 (华人,在FB工作1年多,刚完成培训,开始做主面试官,每周面试1-3次)
给出hire或no hire意见的基准是什么? “这个和电面还是onsite有关系,onsite是决定要不要hire,而电面是说要不要筛选掉.电面就是筛选掉明显不符合hiring bar的.” "无论是电面还是onsite的feedback,都需要填confidence level,比如虽然是倾向于hire,但意见不强烈,那就要看其他面试官了.
一般面试官是如何准备面试问题的? “很多面试官会有自己熟练的这么几道题,我反正一直就那么几道,懒得换了,主要自己熟悉,别的自己不一定会做.一般就是一道简单,一道难题.也有人喜欢一道题目,然后很多follow-up,比较开放.”
哪些情况意味着“直接死亡”? “简单题需要提示才能做出来, 死” “bug很多,死”(FB标准,code要bug少,clean)
多提几种解法,会不会加分呢? “如果是简单题,不会怎么加分,这道题做到完美是应该的,主要看第二题.”
如果感觉到是背的解法,怎么评估呢? “背不背题目挺难判断,我如果感觉是背题目,那么会给他/她做变种题” “比如一个longest increasing subsequence,可以说连续或者不连续,很多变种,如果变种也做出来,那说明是能力而不是背题” “Behavior”那一轮也可能是Engineer来面试,有design,behavior,算法三类,有不同的培训.
Decision是怎么决定的? “一般面试官的feedback一天左右就提交了,至于通知是另外一回事” “如果interviewer之间有强烈的分歧,就会争论.有些aggresive的会根据自己的理由说服别人” “面试官之间的feedback互相不分享,提交之前看不到别人的” “有时候感觉面试跟相亲一样的,感觉啊细节啊挺重要,可能你有些地方犹犹豫豫的或者思路不清楚,有的面试官就特别介意”
P君 (印度人,在FB工作多年,senior engineering manager)
- 给出hire或no hire意见的基准是什么?
“Can solve the problem.that’s it.That should be most important thing”
70.2.1 Facebook系统设计准备
关于面试流程 社招的话 电面1-2轮,一般就是coding onsite一般是4轮,2轮coding,1轮design,1轮behavior+coding 校招的话,那轮design也变成coding了
关于准备 1) algo/coding 建议大家刷一下leetcode,基本上cover到了大多数常见面试题,而且有可能碰到原题 .需要注意的是,仅仅解出来,做到bug free可能是不够的.代码的质量和速度也非常 重要.网上有一些别人给出的答案可以参考,尽量做到代码简洁清晰.速度上leetcode 上所有题都做到10分钟以内写完.
- design 解这种题是个交流的过程,或者说是给出方案然后获取反馈的不断循环的过程. 一般的流程: 首先你要问清楚requirement; 然后可以讲一下high level architecture,就是分成哪几个component,互相之间如果 interact,在白板上画一画; 之后面试官可能会让你深入某个component detail讨论; 也有可能变换requirement让你重新设计
另外,f家还喜欢让你估算机器之类的,做一些back-of-envelopme calculation.所以 最好对一些计算机相关的基本常数,fb的用户量等等有个大概的了解.
准备的时候建议看看fb的design高频题.一方面有可能面试的时候刚好碰到这几个 topic,另一方面其实很多design都是相通的. 之前有个帖子讲这个,原帖已经被删了,这儿有个备份http://blog.csdn.net/sigh1988/article/details/9790337
另外补充一点我收集的材料
首先你可以从整体上了解一下facebook的architecture http://www.quora.com/Facebook-Engineering/What-is-Facebooks-arc http://www.ece.lsu.edu/hpca-18/files/HPCA2012_Facebook_Keynote. http://www.quora.com/Facebook-Engineering/What-have-been-Facebo 除了下面给出的一些资料,fb engineering page里还有很多不错的内容 https://www.facebook.com/Engineering
news feed 这里有个talk http://www.infoq.com/presentations/Facebook-News-Feed 对应的slides http://readme.skplanet.com/wp-content/uploads/2012/11/0-3_Faceb 还有一些quora上的讨论 http://www.quora.com/Activity-Streams/What-are-the-scaling-issu http://www.quora.com/What-are-best-practices-for-building-somet http://www.quora.com/What-is-the-best-storage-solution-for-buil
facebook chat 这里有两个notes,其中第二个里面还有相应的tech talk links https://www.facebook.com/notes/facebook-engineering/facebook-chat/14218138919 https://www.facebook.com/notes/facebook-engineering/chat-stability-and-scalability/51412338919
typeahead search & graph search 关于typeahead search的tech talk和notes https://www.facebook.com/video/video.php?v=432864835468 https://www.facebook.com/note.php?note_id=365915113919 https://www.facebook.com/note.php?note_id=389105248919
关于graph search的paper, tech talk, notes.其中paper很值得一看. http://db.disi.unitn.eu/pages/VLDBProgram/pdf/industry/p871-cur https://newsroom.fb.com/Photos-and-B-Roll/4362/Graph-Search-Whiteboard https://www.facebook.com/note.php?note_id=10151240856103920 https://www.facebook.com/note.php?note_id=10151347573598920 https://www.facebook.com/note.php?note_id=10151361720763920 https://www.facebook.com/note.php?note_id=10151432733048920 https://www.facebook.com/note.php?note_id=10151755593228920
facebook messages 两个tech talks http://www.youtube.com/watch?v=XAuwAHWpzPc http://www.infoq.com/presentations/HBase-at-Facebook 以及eng notes https://www.facebook.com/note.php?note_id=10150148835363920 https://www.facebook.com/note.php?note_id=10150162742108920
photo storage 相关的papers和notes https://www.usenix.org/conference/osdi10/finding-needle-haystack-facebooks-photo-storage https://www.usenix.org/legacy/events/osdi10/tech/full_papers/Beaver.pdf https://www.usenix.org/legacy/events/osdi10/tech/slides/beaver.pdf https://www.facebook.com/note.php?note_id=76191543919
social graph data store 相关的note, video, paper https://www.facebook.com/notes/facebook-engineering/tao-the-power-of-the-graph/10151525983993920 https://www.usenix.org/conference/atc13/technical-sessions/presentation/bronson http://www.cs.cmu.edu/~pavlo/courses/fall2013/static/papers/117
tiny URL 这里有一些讨论 http://n00tc0d3r.blogspot.com/2013/09/big-data-tinyurl.html http://stackoverflow.com/questions/742013/how-to-code-a-url-sho http://stackoverflow.com/questions/3376163/what-are-the-things-
POI 参考这里 http://www.slideshare.net/mmalone/scaling-gis-data-in-nonrelati http://www.mitbbs.ca/article_t/JobHunting/32476139.html
- behavior,建议大家了解一下fb的culture,准备一下常见的behavior questions, 面试之前rehearsal一下.
最后面试临近的时候,可以再刷刷面经,找找感觉.像glassdoor, mitbbs/jobhunting
, careercup,这些上面就有很多.