How Braintree Interviews Exceptional Developers
braintreepayments.com
braintreepayments.com
That sounds like torture to me. Don't exceptional developers' portfolios and resumes say enough that they don't need to suffer through all that to get a great job? Are the exceptional developers really the ones applying for your job in the first place?
This isn't the worst interview process I've ever read about. I've heard of developers applying to jobs at Microsoft getting 3, 4, 5 levels of interviews before finally getting a job. But most of the developers I met at Microsoft were competent, not exceptional. Exceptional developers didn't need to waste their time with that kind of process and they know it and they moved much more fluidly between jobs.
These things speak for themselves. That's what makes them exceptional. These developers are not the norm but they're not diamonds either -- yet, still, they've already proved themselves and their accomplishments are enough that they can get a job without subjecting themselves to this obstacle course of an interview process.
Braintree doesn't really need exceptional developers to work on a 20th century credit card platform, it just needs competent ones that are socially compatible with its team.
For us, it's more often the qualities that aren't as easily discernible from resumes and source code that have been better predictors of success. There are certainly companies that are best served by lone wolf, mercenary developers, and would be thrilled to have anyone with strong coding skills or impressive accomplishments. Communication and collaboration are more important to us, and as the post points out, you have to interview differently for those aspects.
I would probably have a heart attack if I saw a Braintree release that announced they just hired John Resig as a JS developer. This is the league I think of when I hear the word "exceptional developer" being tossed around.
You can make a very good case that these types of extensive, saturating interview processes do more to determine one's overall fit with the company than their role specific abilities. You could also argue that this is just as important an indicator of one's success with a company as their role specific abilities, assuming some sort of baseline level of competency.
I remember joking that you just ask a potential employee if they cried for Boxer in 1984 if the say no you don't hire them :-)
This is not to say that Braintree's process is perfect-just that the assumption developers are "suffering through it" to get a great job may be flawed. I personally would much prefer going through an overly exhaustive interview to one that I felt could pick up weak candidates.
If you're going to be spending a lot of time working with these people..you want to get a chance to get to know them a bit before jumping in. (Same goes for their tools, development process, etc.)
I think programming riddles, games, and brain teasers are a great way to hire. First one to say "fuck this" and walk out gets the job.
There are three things you want to figure out:
1. Are they able to do the work, and if so, can they do it well?
2. Are they a cultural fit with your company?
3. Do their goals align well enough with yours? (do they have a genuine interest in the space you're in, are they just using you as a stepping stone, etc).
Points 2 and 3 can be discerned by the phone interview, the in-person interview, and the lunch.
Point 1 can be discerned by looking at and talking about a non-trivial open source project that the candidate has built. Basically, you want to dig into architectural or technical difficulties they faced (you always have these in non-trivial projects), and how they surmounted them. The finished product is more than enough to gauge competence and discover excellence. It's only if they DON'T have anything big they can show you that you need to resort to coding assignments.
Logic problems and brain teasers are a relic of a (thankfully) bygone era of bad hiring practices. There's no evidence to support the theory that people who do well at brain teasers do well at architecting and building applications. All you end up doing is potentially pissing off the candidate.
In the end, you need to understand that it's a two-way street. An exceptional candidate is likely to have many offers to choose from. Waste their time, and they'll go with someone else, leaving you with two kinds of people: Those who have a keen enough interest to suffer through your interview process, and those who are desperate enough to suffer through your interview process.
On the price points, it will depend on your volumes for which pricing is more competitive. Here’s some insight into the approach that we took with our pricing as we bootstrapped Braintree:
http://www.braintreepayments.com/inside-braintree/reaching-y...
http://www.braintreepayments.com/inside-braintree/three-less...
Regarding the customer signup process, we think there is value in getting to know our clients and their business when they sign up with Braintree. It helps to make sure we can deliver the rave-worthy support our customers have come to expect. As with everything we do at Braintree, nothing is ever good enough for us and we’re constantly striving to make things better for our customers.