For many companies, hiring people is a messy, somewhat painful process. When you interview someone, it's easy to check whether that person has technical skills and experience --- but it's hard to understand whether this person fits your company's way of working. At Hashrocket, we've learned a lot from past experiences. Now we hire new Rocketeers through a simple, pragmatic process.
People often ask me to describe this hiring process. Sometimes, they want an inspiration for their own company's hiring process. Sometimes, they care about the process because they're looking to be hired themselves, either by Hashrocket or another company.
So, here is our process. It works in three steps.
Step One: First Contact
If you apply for a job at Hashrocket, you usually do it through our website. The bar for submitting your resume is relatively low: we're not necessarily asking for any specific technology skill or long-term experience. However, we do prefer that you have at least a year or two of professional experience writing code. If you don't, then it will be hard for us to understand whether your approach fits our culture.
In each Hashrocket office, we have one person who usually goes through job submissions. This person is not officially appointed: he/she is just a senior Rocketeer who likes to interview people. If this person likes your resume and cover letter, they'll schedule a short Skype call with you and one or two other people from Hashrocket. We like to keep this conversation really short - a few minutes to 15 minutes at most. Again, you won't be talking to a Human Resources department: you'll just have a chat with whoever in the office feels like taking part.
During this First Contact, we'll ask you questions about yourself, your resume, and any interesting topic that might come up. We won't trick you with silly interview questions or stock programming quizzes. We'll just try to understand whether we fit. We do pair programming all day at Hashrocket, so we're looking for people who're good at communicating what they think.
After a few minutes, we'll decide whether to move on to step two.
Step Two: Remote Pairing
If we agree to move on, then we'll schedule another chat --- but this time, it will be a full-fledged remote pairing session. You'll probably talk to the same people you made First Contact with, pairing on a real-life piece of code for about 30 minutes.
Once again, we're not trying to gauge your technical skills at any specific technology. We'll use vim, tmux and some open source Ruby library, but we don't expect that you know any of these technologies. Instead, we want to see how you think your way through a problem. How would you start working on this file? How would you refactor that class?
You're going to do most of the talking, but in all other respects this is going to be a real-life pairing session. If we hire you, then we're going to pair together a lot. So this is our way of checking whether you have the basic skills and attitude for pairing on complex technical problems.
We might decide that your way of working doesn't match ours, or simply that you need more experience. And indeed, that's what happens most of the time. Otherwise, we'll move on to the third step.
Step Three: Actually Working Together
This is the real deal: you move in with us. You'll be a Rocketeer for one week. We give you a place to stay, so you don't have to worry about that. During this week, you pair with a lot of people in the office, you work on the same stuff we're working on (including open source projects), and you generally live the same good life we live. We'd rather work together with you in a real environment than intimidate you with questions or test you with long interviews.
If you make it through Thursday, then the office makes a decision. When we say the office, we mean it: this is not a single person's decision. Hashrocket is a flat hierarchy, so everyone in the office has a say. We don't simply look at how skilled or experienced you are. Instead, we ask ourselves: do we want to pair with you every day? Do you fit our culture? Do we get along?
It's entirely possible that the answer to those questions, either for you or ourselves, is "no". Just like how you don't select your friends based on how smart or funny they are, you're not supposed to select your colleagues based on that. It's chemistry. If we don't click, then we hope that the experience has been nice for you and us alike.
If we click, on the other hand, then we'll make you an offer. On Friday afternoon, right on the spot. No silly negotiations --- we just place an offer that we think matches your experience and you tell us whether it's good for you.
By the way, if you applied to the Jacksonville office, you'll stay at our condo overlooking the ocean in the same building as the office. We can go surfing together on lunch breaks, if the waves are right. In our Chicago office, things are equally good for off-hours entertainment --- especially if you like to play Munchkin. We take our geekdom seriously around here.
And that is our hiring process. It works great for us.
- This post was written in collaboration with Paolo Perrotta who is an amazing author, coach, and friend.