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

本贴最后更新于 1466 天前,其中的信息可能已经时移世改

原贴地址: https://eleduck.com/posts/POGfvp

闲的没事儿接上期讲一讲 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。当然了,边写题边 Google 也没人管你,如果能找到原题,那么恭喜你白拿 100 分。答题结束以后,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 以后开始工作的一些经验。

  • 电鸭
    10 引用 • 27 回帖
  • 远程工作
    22 引用 • 107 回帖 • 3 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • 英语
    35 引用 • 153 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • tracverson

    请问这样在国内找到海外的远程工作难不难(在国内办公,拿美元工资),曾经留学过伦敦,普通交流没有问题,目前在做后端,前端也会一点

    ,另外想问的是,这样的工作机会一般在哪可以找到?国外的远程工作平台?

    听说找这样的工作,工资是国内同等技术水平的好几倍,不知道是否是真的呢?我工作经验目前有 7 年

    恳切期盼楼主的答复

推荐标签 标签

  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖 • 1 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 491 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 32 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 168 关注
  • gRpc
    10 引用 • 8 回帖 • 54 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • danl
    74 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 23 关注
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 509 回帖
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 235 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 37 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 510 关注
  • 安全

    安全永远都不是一个小问题。

    189 引用 • 813 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    261 引用 • 662 回帖
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    20 引用 • 6 回帖 • 31 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 38 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 691 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 509 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    5 引用 • 15 回帖 • 217 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 24 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1383 回帖 • 366 关注