线上付款服务Stripe技术长如何招募新员工?

线上付款服务Stripe技术长如何招募新员工?

我们对面试过程经过了数次重新设计,最近的一次是在今年 5 月,由 Siddarth Chandrasekaran、Evan Broder 和我共同设计完成。我们会尝试在面试中模拟你每天所做的工作,我们不会问你任何纯演算法的问题,你如果需要求助 Google 或是面试官,都没问题。

首先我们会通过 Skype 对你进行程式面试,我们会要求你现场写程式,你可以用自己擅长的编辑器和语言。我们所问的问题主要是为了测试你「将想法转变为程式码」的能力,换句话说,想到解决问题的思路并不难,难的是要写出乾净的、可维护的程式码来实现相关的功能。单单写出正确的程式码是不够的——我们要的是优秀的程式码,而很多人做不到这一点,这也是他们面试失败的主要原因。

线上面试由以下几个部分组成:

设计和实作。 我们会要求你设计一些系统,然后递交一个你设计的系统的原型。我们这样做是为了观察你如何点对点解决问题:在读懂题目的前提下,找到一个解决方案,并成功实作。你需要好像它要投入生产一样对待它:对程式码的品质而非数量做最佳化,视情况编写测试等等。如果你做到了以上要求,没完成也没关係。

排除漏洞。 我们会给你一个热门的开源专案,里面有些尚未被排除的漏洞。你的任务就是尽可能地修补这些漏洞,我们这里主要是想看看你如何驾驭一个你不熟悉的程式码库,并对他人的程式码进行漏洞修补。

重构。我们会给你一个急需改善的应用程式,要求你改善它的结构。这里我们主要是想了解你对优秀程式码的想法。

Pair Programming。 我们给你一份小型的独立的专案,我们需要你写出乾净、可维护的程式码来实作它。这里我们想了解你在清楚知悉限制的情况下程式功力。

在对你做技术评估的同时,我们还想了解与你一起工作是什幺情况。所以我们希望面试过程能通过流畅的网路进行,确保沟通愉快。

在面试的结尾,我们还会对其他同事进行一些关于面试者的小测试:

週日测试。 如果在一个週日,这个人独自在办公室工作,你会去陪陪他/她吗?这当然只是假设——为了看看这个人是否足以让其他同事乐意与他/她为伴。

兴奋测试。 雇用这个人,会让你对在 Stripe 工作感到更加振奋吗?我们雇用的每一个人都应该在某种层面上让公司更好。只维持公司之前的水準还不足以令人振奋——这个人需要能为公司带来日常工作之外的价值。

速度测试。 这个人在加入 Stripe 的前 6 个月内能做到自立吗?我们会雇用多种工程师,其中有些工作多年,有些则初出茅庐,无论哪种,我们都想给予同等的辅导,我们也想确保每一个员工都有能力完成自己的工作。如果在头六个月里,我们觉得你没法做到这一点,那我们就会认为你无法达到我们要求的速度。

我们会要求每一个 Stripe 员工都参与雇用决策,雇用会议对公司所有人开放,每个人都由否决权。这样的话,所有人不仅参与了雇用新人的过程,也能对雇人结果负责。衡量一个过程进行得是否成功,颇为重要。长期来看,我们关心的重点是我们是否建立了一支伟大的团队。我们无法对此作出绝对的评估,但我们所进行的测试是为了了解人们是否因为喜爱团队的伙伴而加入。让面试者与公司的一群可爱员工一起吃午饭,是我们目前最有效的「勾引」手段,如果这一招屡试不爽,那就证明了我们正在建立一支正确的团队。