pure storage 挂

pure storage拒人的理由有点让人无语,题目都是面经题,地里一搜都有
第一次onsite :画圆和multi worker(以为会考fire event,没看这题,临场发挥)
第二次onsite:
-O(1)set,用两个array,follow up:O(1)实现int max()返回当前max value,我用了几种方法觉得不太可能达到O(1),他说“我也不知道O(1)的解法,我也觉得O(count)才行”
-用get_ids实现get_one_id, 个人觉得优化需要两个buffer比较合理,在其中一个in use的时候,另一个fill in,交换着来
-buddy bitmap,followup:你在工作中有没有用过buddy bitmap?答了memory allocation bitmap,问:最后一行1代表available, 0代表unavailable, 如何查找连续的4个/8个available?
-manager聊半小时,说pure招人都事先不看简历的,她也没看过我的简历,要等过了interview,hiring manager才会round table筛选人。

昨接到电话,“你的feedback都很好,大家觉得你的communication和algorithm都很strong”,心中喜悦ing,“但是,你的technical skill doesn’'t fit our current open positions,所以没offer”,哇,不带这么耍人的,都面了这么n轮了你们才蓦然回首发现我不fit啊。。

练手成功以后, 别人很热情的给你offer怎么办

麻烦能详细讲一下getid的思路吗 谢谢

定义两个buffer,具体实现看你了,比如你可以用一个global的value,用来记录in use的buffer是哪个,那么另一个就是你可以pass进get_ids的buffer。看到之前很多人用queue和producer consumer来做,我觉得不太对,只有一个buffer的话,因为存在race condition,在get_one_id的时候不能同时get_ids,必须等get_ids结束,完全没有优化到。

请问再改变这个global的变量的时候 也存在race condition 是不是也需要在get_id 和 get_one_id的时候分别加锁

需要的。给个网上的link解释double queue,我觉得和我想法一样:
https://www.codeproject.com/Arti … Using-Double-Queues

严重怀疑两轮onsite是用来训练他们自己工程师面试经验的(汗)
给LZ加点米鼓励下

训练面试… 这成本是不是略大了点

是Bay Area local,有经验的直接就被叫去onsite,没有电面。
从来没有面过onsite两轮的公司,感觉有点奇葩。这家估计都是用湾区的工程师们用来练手

感觉很伤公司reputation啊

Lol glassdoor上面不止一个人这么批评他们公司了。
那我也拿他们练练手~