UDN-企业互联网技术人气社区

板块导航

浏览  : 1010
回复  : 0

[面试技巧] Stripe如何面试工程师

[复制链接]
山外青山的头像 楼主
发表于 2015-11-26 14:39:10 | 显示全部楼层 |阅读模式
       Stripe是YC近年来投资的相当成功的一家公司,Paul Graham整天挂在嘴上。今年六月份的时候,Stripe开始支持支付宝了。

       Stripe面试工程师的流程是我目前了解到的最靠谱的,考察的都是实际工作中需要的技能:设计、实现、pair programming、找bug、代码重构等。

       已经上市了的知名大公司,包括很多当红的startup,面试过程其实也都蛮水的,很多onsite面试只要3轮,问的都是不实用的纯算法题; 而且很多公司面试官面试完后都不用面对面交流,只要把对应聘者的评价网上提交,再由一个委员会决定是不是要录取。


以下为英文原文:


What is the engineering interview process like at Stripe?


Especially how Stripe's interview process differs from other tech companies. From what I have known, the "Sunday test" and pair programming are such examples.

1 Answer
Greg Brockman
Greg Brockman, Stripe CTO
126.9k Views • Upvoted by Patrick Collison, Stripe cofounder. • Kartik Ayyar, Interviewed 1000+ engineers • Yair Livne, Director of Product Management at Quora
Greg is a Most Viewed Writer in Stripe (company).

Update (April 21, 2015): For a description of the latest iteration of our interview process, see https://stripe.com/jobs/engineer....
We've redesigned our interview process several times, as we've learned what works well and what doesn't. The most recent iteration was designed by Siddarth Chandrasekaran, Evan Broder, and me back in May 2013 [1].

Our interviews try to simulate the work you'd do on a day-to-day basis. We don't ask any purely algorithmic questions — no project at Stripe has ever required writing a red-black tree from scratch. We're also perfectly okay with people Googling around or collaborating with their interviewers.

We start off with a coding interview over Skype. We generally do the actual coding over Skype screen sharing so that you can write in your favorite editor (you're also free to use your language of choice). The questions we ask are intended primarily to test what we call a person's "thought-to-code compiler". Namely, it's always fairly clear how a human would go about solving our problems, but the challenge is in writing clean, maintainable code to implement the relevant functionality. Simply writing correct code isn't enough — the most common reason for doing poorly on this interview is not having a strong enough intuition around what makes for good code.

Our on-site interviews consist of the following components:

  • Design and implementation (90-120 minutes). We ask you to design some system (such as an API, web interface, or a distributed system — we try to tailor the question to your expertise), and then produce a prototype of your system. For this, we try to observe how you solve a problem end-to-end: thinking through requirements (whether user requirements or technical), coming up with a solution, and then actually making that solution exist. You should build this as if you were going to put it into production: optimize for code quality over quantity, write tests as appropriate, and so on. It's fine if you don't actually finish.
  • Bug squash (45-60 minutes). We hand you a popular open-source project along with a failing test case for some bug. Your task is to fix the bug (or make as much progress as you can towards doing so). We're looking mostly to see how you handle navigating an unfamiliar codebase and fixing problems in other people's code.
  • Refactoring (45-60 minutes). We give you a simple application that is in dire need of improvement, and we ask you improve the structure. Here, we're mostly trying to measure your ideas around what makes for good code.
  • Pair programming (30-45 minutes). We give you a small, self-contained project. Importantly, the project is always solvable in pure code — we don't want you to spend time fumbling with libraries. Again, we look for a clean, maintainable implementation. We try to assess your ability to produce code when the constraints are very clear.


While we're doing the technical assessment, we pay attention to what it's like working with you. In general, we look for high-bandwidth, enjoyable communication.

At the end of the process, we apply a few tests:

  • Excitement test. Would hiring this person make you more excited about working at Stripe? Each person we hire should make the company fundamentally better in some way. It's not enough to be excited about finally having someone to maintain some unloved system — the person needs to genuinely add something beyond pure human-hours.
  • Velocity test. Would this person be on a trajectory to be self-sufficient within 6 months of joining Stripe? We hire a variety of engineers, some very far along in their careers and some just getting started. While we hire a variety of skill levels and we want to provide mentorship and guidance to everyone, we also want to ensure everyone is capable of guiding their own work. If we can't picture an engineer being at that level within the first 6 months, then they aren't on a sufficiently high-velocity track for us.


Each hiring decision requires everyone at Stripe to (at least implicitly) be on board. Hiring meetings are open to everyone at Stripe (though in practice usually just the interviewers attend), and anyone can veto a hire. That way everyone feels invested in each new hire joining the team, and no one can claim someone else was hired unfairly.

One important aspect of any process is how you measure its success. In the long run, the main thing we care about is that we're building a great team. It's certainly hard to assess that definitively, but our litmus test is whether engineers continue to join Stripe simply because of the people. Putting a candidate at a lunch table with a handful of Stripes has been our best selling strategy to date. As long as that continues to be the case, we know that we're building the right team.

[1] We'll frequently change the interview process for particular candidates, whether to get additional signal or to handle people's constraints. So if you're interviewing with us, you shouldn't worry if your interview process diverges from what I describe here.
Updated 1 Sep • View Upvotes • Asked to answer by Kai Liu, Patrick Collison, and Sean Rose


本文来自:港区日报微博

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部