With our incredible growth over the past few years, we've had to hire a significant number of developers to keep pace with our customers. Our massively scaled systems aren't going to maintain themselves. The new services, features, and applications that we develop need some really smart people to maintain and improve. To that end, we've had to do a little soul searching in what it means to be a solid developer.
We want developers that have a hacker mind set
Our technical culture derives strongly from our strong ties to the Perl community. We appreciate what open source means both for our business and also for internal projects. Some of our most useful hacks inside the company have come from someone scratching the proverbial itch. We are actively engaged and enjoy the benefits our culture produces such as increased communication between each other and also to our business counterparts.
We want pragmatic developers
While we are a technology driven enterprise, that isn't what pays the bills. Helping our customers book reservations to a wide range of accommodations is our core business. To that end, our projects are driven by the business to improve the business. This means that we have to contain our enthusiasm for technology and focus it to our immediate business needs. This also means that we, as developers, actively engage with the business in open communication which allows us to freely share ideas that benefit our customers.
We want programmers with excellent technical skills
Sometimes, solving our toughest problems had little to do with the software we had written, and more to do with the complex interaction of multiple systems. Understanding the full stack, from bits going across the wire to the various protocols that define communication all the way up to the application layer is vitally important. Most of us know multiple languages and have worked on multiple platforms.
With our expectations defined, we've come up with a hiring process that works rather well for us. It looks something like this:
- We receive a CV.
- CV is vetted for things like work experience, technologies, and skills. This is done by developers.
- Technical pre-interview conducted via phone, again performed by developers
- Technical face-to-face interview here at our headquarters in Amsterdam, NL.
One of the key differences here between us and many other large companies that hire technical experts is that there is no initial layer of screening by non-technical colleagues getting in the way. Seriously. All decisions from reviewing CVs to interviewing to eventually hiring are made by developers with strong technical backgrounds. So while buzzword bingo on a candidate's CV makes sense trying to get past the CV filters of some companies, at Booking.com it can only hurt when elaborate claims don't hold up in reality. We like to look at past projects and what tools were used to accomplish the task. We like facts and numbers. We like to hear about mistakes and lessons-learned as much as we like hearing about successes. And unsurprisingly, we also like easy to read CVs that get to the point.
After reviewing CVs, we invite qualified candidates to have a technical phone interview. We try to cover the basics of computer science, database knowledge, programming, and whether our candidates have some level of business sense. At Booking.com, developers are expected to participate actively in the business. This means helping product owners (our business liaisons) to better understand the implications of their priorities, making suggestions for further improvements, developing targets, and possibly even pushing back on unrealistic expectations and ideas. Our IT department provides a key component to the rock star success of our business.
If our developers feel that the candidate possesses the right mix of skills and could articulate those skills meaningfully we invite that candidate to meet us at the Amsterdam headquarters for a more in-depth session of technical interviews. We're committed to making sure we find the right people and that means we pay for the cost of flying out candidates and arranging their hotel accommodations.
Once here, we give our developers the chance to properly vet the candidate. We try to gather as much information about the candidate as possible. We ask the candidate to write some code (the majority of us are polyglots so it doesn't matter which language is chosen). We think about and discuss solving challenges both big and small. These are usually related to some problem we've solved previously in our work. And again we look for some business reasoning. This takes a little over two hours with two pairs of developers.
Of course, we aren't the only ones conducting an interview. We fully expect our candidates to also interview us. In addition to asking our technical interviewers about what it is like to work within our enterprise, we set aside a portion of time for our candidates to talk one-on-one with one of our delightful human resources colleagues. And they make sure our candidates receive a wealth of information regarding benefits, our relocation program, and also how to go about living here in the Netherlands.
It seems like it is an exhausting process, but we do our best to treat candidates like the humans they are. Our recruitment team goes that extra mile to get in touch with candidates by email and by phone. There is nothing more demoralizing than an applying for a job only to hear silence in return or dealing with horrible automated systems that reduce candidates to applicant IDs. And if for whatever reason a candidate applies and it doesn't quite work out, that doesn't mean it won't be a better fit in the future. In the end, we are human too.
Like what we've said? Want to join us here in beautiful Amsterdam and hack on awesome things? Send us your CV.
Take a look at workingatbooking.com.