【snowflake找工渡劫实录】三个面试官没来,第四个来了,我却更希望他也没来找工就业
背景:国内top4本 + CS大校美硕 + 大厂2yoe。最近promo后准备跳槽,兢兢业业刷题,结果在Snowflake体验了一把什么叫伤痛文学。
苦难是孕育文学的温床。整个面试过程实在太抽象了,不吐不快。
第一回:
一开始约了两轮back to back的coding,每轮一小时。一轮国内大哥,第二轮是个白男。
本人也是认真准备了很久,提前请好pto, 调好摄像头,准备好纸笔和水,紧张兮兮地进了zoom meeting.
结果第一场面试官没来。
等了十几分钟,发邮件找HR,HR也不回复我,焦虑的等了1个小时,后来才知道面试官OOO了,但是忘了decline calendar invite。
行吧,理解,谁还没个突发情况呢。
想着至少第二场能正常面吧。
结果第二场面试官也没来。
???????
不是哥们???
我准备了这么久,请了假,调整好状态,在Zoom里坐了两个小时,最后面试官一个没见着。
主打一个沉浸式模拟失业生活。
HR后来一直道歉,帮忙reschedule。虽然很无语,但想着大厂流程偶尔出点问题也正常,就继续约了。
第二回:
第二次终于约上了。第一轮是国人,第二轮是个linkedin上看起来挺阳光的白男。
又消耗主包一天PTO。
第一场面试官来了,正常面完。聊的非常愉快,一道图的题,虽然没见过但是也不难,秒了。
心想好好好,终于走上正轨了。
结果第二场。
面试官又没来。
是的,到这里为止,四场约好的面试,只有一场真正发生了。
HR也很震惊,反复道歉,说这种情况非常rare。
我心想确实挺rare的,别人可能一辈子遇不到一次,我一周集齐三次。
于是又reschedule。
第三回:
终于到了第三次面试。面试官是个白男,以前aws呆过。主包pto又-1
这次面试官准时出现了。
结果他一进来第一句话就给我整笑了:
“I heard you got stood up three times before. I promise you’ll actually get interviewed today.”
我被鸽三次这件事已经传遍你们组了吗???
不过这句话确实让我放松了不少,心想这次总算能正常面了吧。
事实证明,他确实信守承诺了。
今天真的有人面我。
但我万万没想到,这只是苦难的开始。
开始coding。
题目及其简短,只有两行,举了三个例子,没说输入输出,涉及source和destination之间的mapping。
为了确保理解没问题,我还特意clarify了requirements。
我甚至专门问了:如果source或者destination不在dictionary里怎么办?
我说这种情况下我建议直接raise exception。
我提议用hashmap维护source到destination的关系,然后根据输入做查询。
面试官:Sounds reasonable.
OK,那我就按照这个理解往下写。
中间一直在跟面试官沟通,确认我的design和implementation是不是符合预期。
面试官全程:Yes, yes, looks good.
我写一段,确认一下。
他说没问题。
我再写一段,再确认一下。
他说没问题。
写完之后我还问了一遍。
他说looks good。
整个过程主打一个情绪价值拉满。
我甚至有点感动,心想前面虽然被鸽了三次,但至少这次面试体验还不错。
然后开始跑test cases。
第一个,过。
第二个,过。
第三个,过。
……
一路测到第八个,都没什么大问题。
然后,第九个test case来了。
面试官突然给了一个case,大概是这样:
A -> B
B -> C
然后问我,从A能不能到C?
我:?????????
等等。
我前面理解的是source到destination的direct mapping啊?
你现在告诉我,A还需要能通过B间接到达C?
不是哥们,这tm哪是edge case啊???
这是直接把题目从hashmap lookup升级成graph traversal了吧???
前面一直是根据key查mapping,现在突然需要考虑indirect reachability,要沿着关系一路往下找,甚至还得处理cycle。
这已经不是什么某个边界条件没处理好了,这是核心算法都变了啊。
最让我破防的是,我不是没clarify。
我专门问了source和destination不在dictionary里的情况。
我提出了raise exception。
你说reasonable。
我写代码的时候,你说looks good。
我写完的时候,你还说looks good。
结果到第九个test case,才终于揭晓隐藏requirement:原来destination不一定是source的direct destination,还可以隔着好几个节点。
那你倒是早说要考transitive reachability啊!!!
然后我看了一眼时间。
距离面试结束还有15分钟。
真的,那个瞬间我感觉天都塌了。
因为我知道这题怎么做。
Graph traversal嘛,DFS/BFS都可以,思路本身不难。
但问题是,我前面已经花了大半场面试按照原来的理解写完了implementation。
现在需要重新调整数据结构,重新写traversal,考虑visited和cycle,再把test cases跑一遍。
而我只剩15分钟。
最难受的就是这种感觉:不是题不会,不是没有思路,是你明明知道自己有能力做出来,但发现的时候已经来不及了。
最后只能硬着头皮改,时间自然不够。
面试快结束的时候,我还想跟面试官补充一下time/space complexity。
面试官说,不重要。你traverse的思路是正确的就行,这个比较重要。
行吧。
面完之后真的有点崩溃。
我一直在反复想,如果一开始就知道要支持multi-hop,我完全可以直接按照graph来设计。
如果前面写快一点呢?
如果我多问一句是否需要支持indirect mapping呢?但是我当时真的没想到啊。
如果面试官在我不断确认implementation的时候,早点指出这个问题呢?
可惜人生没有rollback。
第四回:喜提拒信,功德圆满
然后今天收到了拒信。
正式结束了这段孽缘。
说实话,我也知道面试没写完就是没写完,挂了也认。
但问题是,我真的一直在clarify,一直在跟面试官确认我的理解和implementation。
整场面试前45分钟都在收到正反馈,最后15分钟突然发现双方对题目的核心理解根本不是一回事。
这真的比直接遇到一道不会做的题还难受。
而且整个流程前前后后折腾了这么久。
第一次两场面试官都没来。
第二次又有一场没来。
第三次终于有人来了,开场还专门保证今天一定能面上。
最后第九个test case才发现隐藏requirement。
然后喜提拒信。
我已经不知道自己到底是在面SDE,还是在给Snowflake的interview scheduling system做chaos testing了。
不过还是要说一句,HR在整个过程中态度一直很好,帮我协调了很多次,也一直在道歉。这点还是挺感谢的。
只是作为candidate,花了这么多时间准备、请假、反复reschedule,最后得到这样一个结果,真的挺心累的。
本来以为3yoe跳槽最大的挑战是coding和system design。
现在发现第一关是确保面试官真的会来。
第二关是确保大家面的是同一道题。
现在回头想想最后那个面试官的开场白,真的越想越好笑。
他说今天保证我能被面试。
确实做到了。
前三个面试官让我等不到人,第四个面试官让我等不到requirement。
只能说北美找工市场真给我干沉默了。
最后也想特别感谢一下之前帮我内推的小伙伴!真的很感谢你愿意花时间帮忙,虽然最后没能拿到offer,有点辜负这份好意,但还是非常感激这次机会。希望下次能带着好消息回来!
也祝各位地友面试顺利,面试官准时上线,requirements一次讲清楚,大家都能早日上岸!😭
苦难是孕育文学的温床。整个面试过程实在太抽象了,不吐不快。
第一回:
一开始约了两轮back to back的coding,每轮一小时。一轮国内大哥,第二轮是个白男。
本人也是认真准备了很久,提前请好pto, 调好摄像头,准备好纸笔和水,紧张兮兮地进了zoom meeting.
结果第一场面试官没来。
等了十几分钟,发邮件找HR,HR也不回复我,焦虑的等了1个小时,后来才知道面试官OOO了,但是忘了decline calendar invite。
行吧,理解,谁还没个突发情况呢。
想着至少第二场能正常面吧。
结果第二场面试官也没来。
???????
不是哥们???
我准备了这么久,请了假,调整好状态,在Zoom里坐了两个小时,最后面试官一个没见着。
主打一个沉浸式模拟失业生活。
HR后来一直道歉,帮忙reschedule。虽然很无语,但想着大厂流程偶尔出点问题也正常,就继续约了。
第二回:
第二次终于约上了。第一轮是国人,第二轮是个linkedin上看起来挺阳光的白男。
又消耗主包一天PTO。
第一场面试官来了,正常面完。聊的非常愉快,一道图的题,虽然没见过但是也不难,秒了。
心想好好好,终于走上正轨了。
结果第二场。
面试官又没来。
是的,到这里为止,四场约好的面试,只有一场真正发生了。
HR也很震惊,反复道歉,说这种情况非常rare。
我心想确实挺rare的,别人可能一辈子遇不到一次,我一周集齐三次。
于是又reschedule。
第三回:
终于到了第三次面试。面试官是个白男,以前aws呆过。主包pto又-1
这次面试官准时出现了。
结果他一进来第一句话就给我整笑了:
“I heard you got stood up three times before. I promise you’ll actually get interviewed today.”
我被鸽三次这件事已经传遍你们组了吗???
不过这句话确实让我放松了不少,心想这次总算能正常面了吧。
事实证明,他确实信守承诺了。
今天真的有人面我。
但我万万没想到,这只是苦难的开始。
开始coding。
题目及其简短,只有两行,举了三个例子,没说输入输出,涉及source和destination之间的mapping。
为了确保理解没问题,我还特意clarify了requirements。
我甚至专门问了:如果source或者destination不在dictionary里怎么办?
我说这种情况下我建议直接raise exception。
我提议用hashmap维护source到destination的关系,然后根据输入做查询。
面试官:Sounds reasonable.
OK,那我就按照这个理解往下写。
中间一直在跟面试官沟通,确认我的design和implementation是不是符合预期。
面试官全程:Yes, yes, looks good.
我写一段,确认一下。
他说没问题。
我再写一段,再确认一下。
他说没问题。
写完之后我还问了一遍。
他说looks good。
整个过程主打一个情绪价值拉满。
我甚至有点感动,心想前面虽然被鸽了三次,但至少这次面试体验还不错。
然后开始跑test cases。
第一个,过。
第二个,过。
第三个,过。
……
一路测到第八个,都没什么大问题。
然后,第九个test case来了。
面试官突然给了一个case,大概是这样:
A -> B
B -> C
然后问我,从A能不能到C?
我:?????????
等等。
我前面理解的是source到destination的direct mapping啊?
你现在告诉我,A还需要能通过B间接到达C?
不是哥们,这tm哪是edge case啊???
这是直接把题目从hashmap lookup升级成graph traversal了吧???
前面一直是根据key查mapping,现在突然需要考虑indirect reachability,要沿着关系一路往下找,甚至还得处理cycle。
这已经不是什么某个边界条件没处理好了,这是核心算法都变了啊。
最让我破防的是,我不是没clarify。
我专门问了source和destination不在dictionary里的情况。
我提出了raise exception。
你说reasonable。
我写代码的时候,你说looks good。
我写完的时候,你还说looks good。
结果到第九个test case,才终于揭晓隐藏requirement:原来destination不一定是source的direct destination,还可以隔着好几个节点。
那你倒是早说要考transitive reachability啊!!!
然后我看了一眼时间。
距离面试结束还有15分钟。
真的,那个瞬间我感觉天都塌了。
因为我知道这题怎么做。
Graph traversal嘛,DFS/BFS都可以,思路本身不难。
但问题是,我前面已经花了大半场面试按照原来的理解写完了implementation。
现在需要重新调整数据结构,重新写traversal,考虑visited和cycle,再把test cases跑一遍。
而我只剩15分钟。
最难受的就是这种感觉:不是题不会,不是没有思路,是你明明知道自己有能力做出来,但发现的时候已经来不及了。
最后只能硬着头皮改,时间自然不够。
面试快结束的时候,我还想跟面试官补充一下time/space complexity。
面试官说,不重要。你traverse的思路是正确的就行,这个比较重要。
行吧。
面完之后真的有点崩溃。
我一直在反复想,如果一开始就知道要支持multi-hop,我完全可以直接按照graph来设计。
如果前面写快一点呢?
如果我多问一句是否需要支持indirect mapping呢?但是我当时真的没想到啊。
如果面试官在我不断确认implementation的时候,早点指出这个问题呢?
可惜人生没有rollback。
第四回:喜提拒信,功德圆满
然后今天收到了拒信。
正式结束了这段孽缘。
说实话,我也知道面试没写完就是没写完,挂了也认。
但问题是,我真的一直在clarify,一直在跟面试官确认我的理解和implementation。
整场面试前45分钟都在收到正反馈,最后15分钟突然发现双方对题目的核心理解根本不是一回事。
这真的比直接遇到一道不会做的题还难受。
而且整个流程前前后后折腾了这么久。
第一次两场面试官都没来。
第二次又有一场没来。
第三次终于有人来了,开场还专门保证今天一定能面上。
最后第九个test case才发现隐藏requirement。
然后喜提拒信。
我已经不知道自己到底是在面SDE,还是在给Snowflake的interview scheduling system做chaos testing了。
不过还是要说一句,HR在整个过程中态度一直很好,帮我协调了很多次,也一直在道歉。这点还是挺感谢的。
只是作为candidate,花了这么多时间准备、请假、反复reschedule,最后得到这样一个结果,真的挺心累的。
本来以为3yoe跳槽最大的挑战是coding和system design。
现在发现第一关是确保面试官真的会来。
第二关是确保大家面的是同一道题。
现在回头想想最后那个面试官的开场白,真的越想越好笑。
他说今天保证我能被面试。
确实做到了。
前三个面试官让我等不到人,第四个面试官让我等不到requirement。
只能说北美找工市场真给我干沉默了。
最后也想特别感谢一下之前帮我内推的小伙伴!真的很感谢你愿意花时间帮忙,虽然最后没能拿到offer,有点辜负这份好意,但还是非常感激这次机会。希望下次能带着好消息回来!
也祝各位地友面试顺利,面试官准时上线,requirements一次讲清楚,大家都能早日上岸!😭
已获得 34 大米


+2
共49条回复
✨ 您正在体验新版论坛UI



