分享一些个人为美国公司远程工作的经验分享 -- 面试部分

头像
薄荷
1178阅读34评论

闲的没事儿接上期讲一讲Toptal或者其他工作的面试流程吧。上个帖子地址:https://eleduck.com/posts/ez1fgq

在北美,完全支持远程工作的公司很少。一般我们耳熟能详的,比如Github,GitLab,Stackoverflow等等。这些公司一般都只招聘Senior甚至更有资历的程序员。所以一般的国内开发很难加入到这样的团队中。另外,北美远程工作中有很重要的一点就是,他们对时区还是有很重要的要求的。并不是说,你是远程工作者,你就能在国内某个十八线小城市轻松拿着硅谷的工资赚汇率差了。一般就算是远程工作者,公司也会要求至少4到8小时的时间重合。也就是说,你应该是身处在北美或者南美时区的。当然,在哪个城市无所谓。当然了,考虑到某些特别的网络情况,所以总体而言在国内给一个合法正规的北美公司做远程这样的机会是比较少见的。更多的是国内背景的公司创始人可能会考虑招聘国内远程开发来降低用人成本。这点在电鸭这个平台应该也有很好的体现。而不管是否是远程工作者,对于一般的公司来讲,面试流程和正常坐班工作者不会有很大区别。所以想找到一个合适的远程工作机会,确实不容易。

这也是我选择Toptal的理由,因为Toptal本身严格的面试流程加上社区化的管理,使得你在Toptal这个平台上的面试流程会被大大简化。基本上Toptal上的公司不会再过多过问技术问题,只是聊一下公司文化是否符合,就可以轻松决定是否给你一个远程的工作合约。注意,Toptal严禁开发和公司私自签订任何雇佣合同,不管是合同工还是全职工,而Toptal本身只提供合同工机会,所以所有上面的工作都是以合同工的形式出现的。也就是说,你所有的工作都是以每小时计时,而不是年薪,也不包括任何福利,股票,等等。但是Toptal本身好的一点是,它保证你的收入,因为你的工资是Toptal发给你的,所以你不用担心企业拖欠你的工作报酬。企业拖欠的话,也是Toptal受到损失,而不是你。这是我非常看重的一点。

然后就讲一讲面试流程好了。上一个帖子说到了,第一个面试是英语。针对开发者,接下来还有三轮面试。

首先是一个在Codility上的在线解题测试。一共三道题,每道题100分。Codility会做准确率测试和优化测试两种测试,一般每种测试各占50分。当然有的题目不适合做优化(速度)测试的话,那么准确率测试会占到100分。三道题一共300分,拿到210分以上就可以过关。题目都是英文描述,主流编程语言都支持。这个没什么好说的,就是leetcode。答题结束以后,Toptal会给你一封邮件,让你选择一个时间进行接下来的面试。原则上说如果你不到210分是不能下一轮的,但是我有个朋友只得了180分也让他进行下一轮了,不是很懂发生了什么。

下一轮,是和一个Toptal平台上的Senior开发做视频面试,面试者都是随机分配的。内容就是在两个十五分钟之内快速写完两个方程。这里要强调快速是因为他只看准确率,而不看优化。每个方程给最多15分钟的时间,语言任选,在线上REPL或者本地IDE或者终端写都无所谓,你需要分享你的屏幕给面试者,他会看着你写。15分钟很严格,不能超时。不过题目不会是很难得题,一般就是Leetcode里面简单难度的题。写完以后对方会当场给你几个简单的测试,全过就是过了。我当时全过的所以我不太清楚如果只过部分会是什么结果,这个还真的看面试者心情。当然了,如果时间内没写出来的话,肯定是挂的。另外,有可能在面试开始前,如果你上一轮在线测试不到210分的话,面试者可能会跟你探讨一下上面的题目,看看你的思路等等。这是我朋友遇到的情况,不过因为朋友没有在15分钟之内写出来题目,所以挂在这轮了。当然就算你过了210分他还是可能会问你思路的。

说句题外话,Toptal上大多数都是欧洲人,所以斯拉夫口音非常重,印度人来面试的不多,所以去Toptal上面试要适应一下俄罗斯口味的英语。

如果上一轮快速写代码的测试过了的话,最后一轮是写一个APP。这轮说难不难说简单不简单。这个APP一般要求有用户登陆和注册页面,要求有不同的用户组,不同的权限。再加上两到三种不同的数据,做一些列表,实现每种列表的CRUD功能。网页或者手机APP都可以。比如说,用户 -> 发帖 -> 评论 这样的列表关系。用户只能更新或者删除自己帖子,也能删除自己帖子下的评论但是不能更新,也能删除或者更新自己在别的用户下的评论。超级管理员可以增删查改用户,增删查改评论,增删查改发帖,同时也能给予或者移除一个用户的权限等等。有时候会有三种权限,比如普通用户,管理员用户,Root管理员用户等等。反正会是一个很符合实际逻辑的小应用。会有最多两周的时间来完成。如果是手机应用的话,可以用Firebase。网页应用的话,从前端到后端要自己完成,不用放在服务器上。UI自己设计,不作要求,但是不能一点儿CSS没有,基本上简单的Materials,Bootstrap,jQuery UI或者AntD就可以满足需求了。如果什么地方要求描述不清的话一般可以自由发挥,只要符合实际即可。

完成了以后,需要再约另一个面试者,也是Toptal上的Senior开发。他会要求你本地启动APP,然后完成演示功能。再让你打开代码,随机问你一些实现方式,如果你有任何非主流的实现方式或者安全漏洞。他会和你探讨,或者询问。这一轮基本上是面试你的实际写代码能力。如果有一些简单的需求实现没有完成的话无伤大雅。比如我当时就忘了实现一个列表对日期的筛选,但这些都是小事情。他主要考察,一方面你实现某些功能的方式是否足够安全,实现方式是否主流。一方面你的代码风格,架构,是否使用了合理的框架,数据库实现是否合理。一方面你是否能按需求独立完成一个应用。这些主要体现在,用户登陆认证结构设计,请求的权限管理结构设计,数据库的结构设计等等。如果你用ORM的话,是否会被SQL注入等。还有安全方面的,是否会被XSS攻击,是否使用了HTTPS,如何应对DDoS攻击,如何应对爬虫等等。考察的算是比较全面的了。

最后如果你全都通过的话,那么你就正式加入了Toptal,下次我会更新加入了Toptal以后开始工作的一些经验。

分享主题:
经历/经验
收藏
举报
加载中…
精选评论
头像
等级0

第一轮(3 题)+ 第二轮(2题) 都是leetcode的easy题么?

第二轮是,第一轮三道题不是。。

明白。谢谢回复。顺便还想问下,如果面试失败,以后还能再次申请么

我印象里是3个月后可以再次申请。。

确实,感觉第一轮的在线题略难啊。。。前阵子就挂在那上面了

leetcode的水平。。。我记得210/300就过呀,如果真的210都有压力的话可能还需要练习一下

头像
等级0

感谢分享~
本人前端,英语还能说有一点点底子,就是算法能力太捉急,刷剑指offer经常看题解都要看个半天,哭了~~o(>_<)o ~~

慢慢来吧,我一开始刷leetcode也是基本一天一题都难,现在这不也刷了240题了。。甚至都开始上传leetcode题解视频了 https://www.bilibili.com/video/BV1464y1T7wB

头像
等级1

非常棒!楼主是否有想过为国内自由职业者提供出海培训,如面试,英语培训,职业生涯指导这些?我觉得楼主特别合适!

谢谢,暂时还没有。因为我本人也不是经验非常丰富,而且自己也在快速学习进步中,所以日常安排非常繁忙。我会尽量抽空把我自己认为有价值的内容分享出来,当然也是免费的。如果大家觉得有价值自然是最好。如果没有那么有价值,那就是当作个人的一些分享好了。

头像
等级0

正好这两天去体验了一下toptal,更新一下coding test相关的内容

一共3个task,本身都是应用题没啥难度,上过一年班的人应该看到题就知道怎么写了,但是我task 3最后没时间调试拿了0,总分137/300也让我进下一轮了,所以分数主要作为参考,应该会有人review提交上去的solution,结合看申请人的background,以及代码质量是否符合他们的要求再做决定。

附上我回复的邮件:


对的,似乎一直都是这样,我也从一些朋友那听到反馈过。不过这个无伤大雅,你要好好准备接下来半小时的那个面试。那个时间非常紧迫,基本上我所有refer的人都挂在那一轮。

头像
等级2

感谢精彩分享,倾尽最后一格电量为你充电,记得继续啊😀

头像
等级0

第一轮全程对话无压力,除了偶尔网络问题都聊得飞起,结果说是语态和语法偶尔有错误然后挂掉了,没处说理去。。。

想问一下toptal第一轮英语面试主要是什么内容

头像
等级1

前端也有算法相关测试吗?

是的,开发的面试流程全都是一样的。Toptal一般不分前端后端,招进来一定是一个全栈。当然如果您是做移动开发的话,你可以用Firebase,那可能会减少一些后端工作。另外一种是所谓的UX/UI,那个偏设计,面试流程是不同的。

soga,谢谢这么详细的分享!

头像
等级0

写app??我是做后端的,大数据相关,也要要求写app?

是的,不管你是什么。你只要申请的是SDE的职位就要完成一个APP

头像
等级2

感谢分享,干货满满。

关于时区的考虑,我有个疑问想请教。根据你所说的假如雇主期望至少有4个小时的重合,那是不是如果想找英文工作环境的话,可能是就我在图上所画的东欧洲和马来西亚,澳新地区可能比较适合了呢?

可以这么理解。但是考虑到实际情况,可能南亚会比较合适。我个人觉得澳洲或者欧洲的工作机会比较少。而且欧洲的话,他们从语言文化和时间上也会更倾向北美的工作者。

头像
等级0

大佬怎么把我删了啊啊啊啊 我今天过了第三轮了

头像
等级0

谢谢,楼主, 非常有价值的分享。 期待您后续的分享~

头像
等级1

很有价值,感谢楼主分享

头像
等级0

正需要这样的经验分享。谢谢作者!

头像
等级0

写一个简单的小项目,然后挑几个知识点讲讲~ 这面试流程不错. 但是全英语就(ಥ_ಥ)

头像
等级0

感谢分享, 开发经验 6 年突然感觉自己什么都不会

头像
等级1

问下楼主,是在中国吗?然后toptal会不定期的给你安排工作?对接方是欧美那边吗?