2024年1月被裁,终于上岸了...
欢迎大家点击左下角“阅读原文”到原帖与作者交流讨论哦!
个人背景
6年大厂和startup的工作背景,今年一月开始找工作。
因为yoe离staff还是差一点,所以都是target的senior的岗位。因为还在h1b所以把我知道的公司基本上都投了一遍。
我平时偶尔也会面面其他公司,保持一下状态,大概四五个月面一家。刷题水平只能算一般,medium会做,hard只要没见过基本不会。system design大概是什么都可以把high level solution说一下,但是细节不一定清楚的水平。BQ应该是我强项,平时也会把自己做过的事情记录下来,这样面试的时候才可以做到胸有成竹。
找工结果
投简历+猎头+内推:62
电面:23
onsite:
total scheduled:16
cancled: 7 (后面有offer了就没去了)
total completed: 9
offer: 4
passed onsite pending team matching: 2
down leveled: 1
failed: 2
经验教训
平时工作中的准备
在平时工作中,我觉得有三点比较重要:
⭕️ 保持面试:我有一个前辈给我说过,就算你觉得你现在工作比较稳定也要坚持面试,频率可以低,比如半年面一个。原因有两点,一是要保持自己面试的状态,可以随时找到工作,二是在反向bq的环节你可以了解其他公司的商业模式和技术实现。
⭕️ 多留意和参与系统设计方面的讨论,我觉得coding甚至bq你都可以突击准备下,但是system design这个东西真的需要平时的积累。知识性的积累除了看书之外,更要结合实战中的经验。我个人的感受是:在大厂中,你自己主导的system design的机会其实不是很多,所以这个时候你要积极去参加你们组,你们org的design的讨论,多多跟别人讨论所用技术的trade off,夺取参与design的brain storm。在startup里,你有更多的机会从0到1build一个system,但是这种system的scale一般比较有限,而且整体而言,大家回prioritize time to market over engineering bar。这种时候,你需要在你的design里面多多思考以后的scalbility,roadmap,和各种edge case,并且积极让高level(staff+)的人来review你的design,给你提feedback。
⭕️ 寻找多个mentor:跟mentor交流在职业发展方面在好处,不用我赘述。我想强调下mentor对于你面试中BQ的帮助。你平时在推进项目或者其他intiative的过程中,有了mentor的指导,你可以从更高的视角来看你的项目的背景和各个team之间的合作,这样你可以在bq中讲出这样的思考,就可以帮你的story up level。
如何取得电面的机会
不到没有方法,特别不建议海投和上linkedin申请。经过我60+公司亲测,以下是拿到电面几率的排名:
直接可以跟Hiring manager/hiring 组的组员聊 > 跟recruiter聊 >> 内推 >> 海投 > linkedin 上easy apply
我也试过直接在linkedin上reach out,但是从来没成功过。。。
如何准备电面
电⾯主要是算法,有的公司会问⼀点bq,有的公司会把sd单独作为⼀个电⾯。这部分主要说说算法。我是⽤的 grind75,这个link⾥⼀共有169道题,我做了⼀遍,复习了⼀遍(就是过过思路),我觉得复习这个+看看⾯经就 完全够了,我感觉算法对于senior+只要⼤概可以做出来就问题不⼤,onsite主要还是看sd和bq。
对于中⼩公司(⼀般⼈数不过万的公司)⾯筋特别有⽤,对于⼤公司,⾯筋就基本没⽤,主要靠⾃⼰的积累。
如何准备Onsite
System design
1.system design⾸先你要有知识储备,我之前看过⼀遍DDIA,后来陆陆续续看过⼀些微服务,系统架构的书。这次准备⾯试的时候⼜把alex xu的两本书都看了⼀遍。假如你时间有限,我建议你直接看alex xu的书,他的书 涵盖了很多细节,值得你学习从⽽提升⾃⼰的知识储备。
2.在以上这么多资源看了之后,你⼀定要内化这些知识。内化这些知识最好的⽅法有⼆:⼀是你在实际的project ⽤到(这点需要你平时⾃⼰active发现有没有应⽤的机会),⼆是去教别⼈,所以我highly recommend你去找 ⼀个buddy⼀起准备,相互交流。或者你去你们组⾥开knowledge sharing把你学到的share出去。
3.找⼀个⼈mock,我这次找⼯作,因为时间⽐较紧急,没有找到适合的⼈mock,所以导致我前⾯两个onsite就 挂在sd,因为没有掌握好节奏(在某⼀个细节太花时间,或者没有很好的主导discussion)。我在没找的⼈时, 就⾃⼰给⾃⼰讲,画图,做笔记。假如你是⾃⼰给⾃⼰讲,⼀定要录像,复盘。我就是没有录像导致节奏是靠 前⾯⼏个公司的⾯试来慢慢调整。
4.当你学习了知识,并且mock了⼏次之后,更重要的是实战。你⼀定要找到适合⾃⼰的present⾃⼰idea的⽅ 式,alex xu说了⼀个template,但是你完全不⽤照着他的来。你要找⼀个适合⾃⼰的讲述结构,你⽐如,我会 把critical flow放在很前⾯讲,从⽽引出api design 和data schema。很重要的⼀点是这⾥你要根据不同的问 题,找到重点,在那⾥多花时间。⽐如,design monitoring system,重点就是pull vs push的取舍,数据你怎 么存,你怎么保持⾼可⽤。design payment system,data consistency很重要,failure,idemptency handling都是重点,其他的scalebility,performance improvment,api就可以有时间再讲了。我建议你多去看 看你们公司⾼级别的⼈的design doc,你看看他把什么东⻄放在最前⾯,这部分就是最重要的,你还可以跟他 1:1 (最好主动跟她们setup)的时候问问他为什么觉得这个重要。抓住重点不论是sd interview或者⼯作中都是 ⼀个很重要的素质。
Behavior question
⭕️ 一定要平时多多留意自己做的东西,这个跟你写自己的performance review/promo doc一样,千万不要临时抱佛脚,因为你到时候肯定记不住这么多细节了。我会maintain一个brag doc,把自己做的重要的项目写一下,自己做了啥,结果是啥,和哪些人合作的,有哪些learning。这样准备的时候就可以改改直接用。
⭕️ 每个公司的culutre不一样,bq的侧重也不近相同,我这里建议你看看亚麻的lp,那是十几条lp你都准备好了的话,应该可以覆盖95%以上的问题。
⭕️ 跟sd一样,最好找人mock你的bq,你可以以一个外人的角度审视你的故事清不清楚,impact大不大,有哪些常见的followup别人会问你。
⭕️ story一定要包装,就跟你出去吹nb一样,适当的包装是必须的,但是你一定要想好别人会怎么问你细节,要把细节准备好。
⭕️ 讲故事的时候,可以多讲讲你的learning,这样才体现你的end to end的思考。
⭕️ 最后,我想提下反向bq,一般你会有5-10分钟问问题,这个是你很好的机会,体现你对这个公司/行业的了解,和你对这个机会的兴趣。你最好问一些具体的问题,让面试官多说下。而不是提一些很general的问题。面试的目的是收集signal,你sd,算法强当然是。但是你假如可以在反向bq的环节跟面试官聊嗨,我相信你大概率不会挂。因为面试官大多是先在潜意识跟你打个分再回去找证据,他假如潜意识觉得你很了解他们做的东西,你很有热情,当然会觉得你牛逼,从而忽略一些你不好的signal。
Project dive deep
⭕️ 有的公司会有这轮,你需要讲一个project,面试官有可能从tech或者cross functional的角度来问你问题。我觉得最好的准备方式是给你一个码农朋友讲讲这个project,看看哪些细节需要加。
⭕️ 这轮切记不要勉强,假如你自己讲不清楚技术细节,千万不要提出来显得你nb。
如何保持心态
在被lay过程中,心态是最要的,我有几点建议:
⭕️ 一定要多寻求帮助,被lay不是什么不好意思开口的事情,你应该把这次经历当成一个个人提升和整理你networking的机会。在和朋友/熟人的交流中你会释怀不少,好多问题不是靠你自己想想的通的,你需要bring不同的视角帮助你自己。
⭕️ 让自己有计划的忙碌,我每天会列个日程表。当你知道你下个小时要干什么的时候,你也会慢慢忘掉焦虑。
⭕️ 保持锻炼,适当的锻炼和放松是必须的,不能一直紧绷。
一些感悟
在这次找工中,我应该面了15+个国人面试官,每一个人都给了很好的面试体验,都没挂我。一亩三分地网站有人会吐槽国人不给国人过,但是以我的经验,绝大部分我们华人还是团结的。我入职新公司之后,也会积极参加面试,回馈这个社群。
假如你有什么问题,请在这个帖子留言或者私信我,我都会尽力帮忙回答。
时间线
1月底:被lay
2月底:第一个offer
3月初:集中onsite和negotiate offer
3月底:accept offer
大家如果还有相关的问题和看法,欢迎点击“阅读原文”到一亩三分地讨论
来源一亩三分地网站等,版权归原作者所有
本文禁止任何形式的转载,请与一亩三分地联系
微信扫码关注该文公众号作者