一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1335|回复: 2
收起左侧

LinkedIn infra面经

[复制链接] |试试Instant~ |关注本帖
guixi107 发表于 2016-5-1 08:27:52 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Linkedin - 猎头 - Onsite |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
分享面经 回报地里

3月底面的Linkedin的System Track的位置, 从早上9店面面到下午5点,人都快面虚脱了。大家一定要注意保持体力。下面是面试的具体情况

第一轮是host manager(一个人), host manager的问题主要针对自己做得项目提问;需要阐明做的是什么,怎么做的,为什么那么做;回头来看,需要做什么可以得到改进;然后问了一个比较general的问题: linkedin的页面load很慢,可能是哪些原因导致的?可以有什么办法来衡量,可以怎么解决etc? host manager的角色比较重要,一般来说,最后的hiring review的时候,他的opinion 可以out weigh 其他人的opinion
. from: 1point3acres.com/bbs
第二轮是算法面试(2个人),一个问题是寻找2个linkedlist的回合点。这个题目其实很简单,主要是需要把test case想全,容易遗忘的case是如果linkedlist有环的话,我们可能永远到不了终点。第二个算法题目是max points on a line. 这个题目也需要tricky的case, 比如说2点连线是水平的,或者垂直的,或者重合的;还有一点就是应该用gcd来化简和表示斜率,不能有double表示。

第三轮是设计面试(2个人),问题是设计一个delay queue。大概的意思是这样的:
public interface Runnable{
public void run();
}

public interface delayTask{-google 1point3acres
public void delayRun(long timeInMillSecondsToDelay, Runnable task);
}
sample calling code snippet:
  delayTask imp = new delayTaskImple();
  imp.delayRun(100, new RunnableImp());
  imp.delayRun(10, new RunnableImp());. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
不可以用系统的concurrent collections。需要用thread,condition和lock来实现上面的behavior;需要支持多线程;需要考虑到schedule的效率。谈不同的设计的trade off。从hr的反馈来看,这一轮面的不好

这里插入的是中午吃饭论,来得engineer是data track的人,他们是利用infra的组来处理和分析数据的,吃饭的时候也说了好久关于工作的事情。

第四轮是算法面试(2个人),一个问题是isomophic string(leetcode上有);第二个问题是upside-down a binary tree。这2个都是leetcode linkedin tag下面

第五轮是设计面试(2个人),问题是设计一个monitor service。题目的背景大概是这样的:
. 鍥磋鎴戜滑@1point 3 acres   你大概有100个app server, 现在需要设计一个monitor service,需要回答下面2类问题
(1)过去最今1分钟,5分钟,1个小时直到一周的的cpu, memory, disk的使用状况,最好可以用图形显示结果
(2)支持任意组合不同的App server来看使用情况;比如说我可以选择server 1, 3, 5,需要显示最大,最小和平均的使用情况
这好像就是他们自己的monitor service,中间当然需要kafka,如后就是如何设计subscriber和kv store了。从最后的结果看,这一轮一般。

第六轮是设计面试(2个人),这一轮设计一个buffer来支持读写,大概的背景是单机有一个4g的memory,现在需要设计APIs来进行多线程的读写。每次写的时候log会prefix message id;读的时候会指定从某个mesdage id开始读,比如说:
 append(int messageid, int messageLength)
读的时候:. visit 1point3acres.com for more.
int read(int startMessageId, int readMessageLength)
messageId是单调递增的。读的时候startMessageId不一定是需要出现的,比如说村的messgaeId是 1,5,8,23.给的读得messageId是7的话,那么从messageId=8的开始读起。最后的结果是把它抽象为single producer, multiple reader。然后在读的时候,用的是binary search in rotated array的方法找到读得起始位置。从最后的结果来看,这一轮免得较好。

一周后Hr说面挂了。设计题目没有面好。:(.1point3acres缃
. visit 1point3acres.com for more.

评分

1

查看全部评分

adiggo 发表于 2016-5-1 08:45:59 | 显示全部楼层
谢谢楼主分享。 可以讲讲第三轮怎么做的
回复 支持 反对

使用道具 举报

 楼主| guixi107 发表于 2016-5-1 08:51:29 | 显示全部楼层
adiggo 发表于 2016-5-1 08:45
谢谢楼主分享。 可以讲讲第三轮怎么做的

我的设计不被interviewer认可啊,根据hr的反馈来看,这一轮面挂了。我做得比较野蛮,直接没来一个task就从thread pool里面拿线程用;也尝试用线程睡delay time;各种被challenge。:(
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 13:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表