At CloudMagic, we are always looking for great engineers to join our team. We believe in “always be hiring” and “hire slow”. We think if we hire when we have to, it’s tempting to compromise and settle for less than the best. It takes hard work and discipline to always keep screening, interviewing and then selecting only the best.
I thought sharing what we value in a candidate would be a good way to reach out to the kind of people we are looking for. We have designed our hiring process based on a few values that have been working well for us.
Step 1: Starting a conversation from the application form
We pay very less attention to resumes; they talk mostly about irrelevant things like GPA and years of experience. Some candidates think filling resumes with coolest tech buzzwords makes them stand out. That might work for other companies but does not help us one bit.
Instead, here is what we ask when you apply for a job
- What do you like/dislike about our product? Why?
- Tell us a little bit about yourself. Why are you looking to join our team? How can you help us?
I think, if you care about your work you must care about what you are working on. That’s why we assume, you would have tried and played with our product before applying. Great candidates will try to judge the quality of the team by looking at the product. In response to the first question, they will talk about things that are specific to our product. They will construct a thoughtful answer about the “why?” component. Average candidates will respond with “I like what you guys are working on” or “I like your technology stack”.
In response to the second question, we expect candidates to tell us about themselves, which is basically about their accomplishments, what they are proud of, what do they care about and what can they bring to the table.
The free-form nature of these questions is what makes them effective. We assess how the candidates think and communicate, what are some of the things they have created and what do they value. This is like having a conversation with the candidate. In comparison, resumes are like “classified ads”.
Step 2: Code challenge – getting hands on with coding
After we like a candidate’s application, we generally send a small coding challenge over email. The challenge itself would not take more than 2 hours to solve. This is an important step because many candidates, who apply, are afraid of coding!
While sending the answer for the challenge, a candidate will also have to answer a few related questions. This helps us further in understanding their thinking process.
Step 3: Interview rounds for more in-depth conversation
Typically there are three to four rounds of interviews (including a “phone screening” for outstation candidates). During these we try to find out the following:
- Can you think clearly?
Part of being able to think clearly is the ability to divide a larger problem into smaller ones and work out a solution. One sample question is: Given a description of a small application, can you figure out the components needed to make the application work?
We also ask general aptitude questions at this point of time.
- Can you communicate your ideas clearly?
I can not emphasize enough how important this is. If you can structure your thoughts in a presentable way, you are doing great at this stage. We are not looking for fluency like a native English speaker; but you should be able to express your ideas clearly without frustrating the listener.
- Technical knowledge
Here we look for your command on programming, clarity on basic Computer Science concepts and whether you actually care about your craft and skills.
Assuming, you can write code, what we look for here is the thinking approach, readability and modularity of your code. Some of these are difficult to judge in an interview; but we try to find this out by discussing the way you work.
- Curiosity and continuous improvement
Did you figure out why things work the way they do? OK, it is not possible for everyone to know everything, but how deep is your understanding about your craft? Did you go beyond the call of duty to learn things?
- Can you ship?
Shipping is more than just writing good quality code. We discuss about the things that you have shipped recently. This is by far the most difficult thing to figure out from an interview. Again, we discuss and try to assess the way you work.
That’s it. If you think the above values resonate with you, please apply!