If hiring software engineers is no easy task, hiring great ones is nearly impossible. I’d rather kiss all the frogs in a pond to find the prince, if only it were that simple to hire!
An average of 2% of applicants gets hired by my company, Zuhlke Hong Kong. That means there are only 2 princes in a pond living with other 98 frogs. Apparently, we don’t have time and energy to interview all of them, so we have designed a well-defined screening and interview process that I’m going to share with you.
Instead of kissing all the frogs, we carefully examined the princes we already hired and identified what a prince frog could look like:
Technical competence. A generalizing specialist, or a T-shaped engineer, is who we are looking for as a service provider. Even better if they are Pi-shaped.
Quality of work. Would you buy a car from an unknown manufacturer? Would you trust the quality of the cars they produce? Our customers expect us to deliver high-quality software that they can trust because their business relies on it.
Passion. Nike’s founder, Phil Knight, once said in his book Shoe Dog, “The rewards are few and far from guaranteed. When you run around an oval track, […] you have no real destination. At least, none that can fully justify the effort. The act itself becomes the destination”. This is passion.
Growth mindset. This is the mindset all successful people have in common. Technologies and business environments will always change. That means our engineers often need to proactively learn new technologies and adapt to new environments and solve new challenges. Sometimes these happen all at once.
This helps us create the full description of what we are looking for in these roles.
We expect software engineers to apply the KISS principle not only for creating software but also for writing CVs. A length of 2±1 pages is considered good. I would reject a candidate for his or her 20-page CV immediately because:
On the other hand, what we would like to see in a few pages:
It is important to tell us only what you did, not what your company or your team did.
Fortunately, most people know how to create a successful CV and about 50% of candidates made it to the next stage.
One more thing: We did receive 20-page CVs a few times. They look more like books rather than CVs.
The goal of the phone interview is to screen out, in 45 minutes, those who are not technically competent. We don’t want to waste your time as well as ours, so we will not spend too much time talking about your background or explaining about your companies. The majority of time will be spent on assessing your technical skills.
Since we also expect candidates to be passionate about their work, we require them to show us how competent and passionate they are by asking questions about how certain features work under the hood. For full-stack JavaScript engineers, they should know how single-threaded Node.js achieves asynchronicity. For Java engineers, we expect them to eat Object-oriented design and related principles and Design Patterns for breakfast.
About 40% of candidates passed this stage.
This is the first on-site, face-to-face interview. Technical Interview I is divided into 2 parts. For the first half, we will ask you to write some code to solve a problem. In addition to assessing your technical competence, we will take this chance to verify your quality of work.
How can we identify good software engineers? As our Expert Engineer, Sascha, once said,
“They write tests”.
We will continue to assess your technical competence in the second half of Technical Interview I. We ask in-depth technical questions that only those who are passionate about technologies would know the answers. It’s okay if you don’t know some of the answers, as long as you show curiosity and learn from failures, as we expect what a candidate with a growth mindset would do.
We usually complete Technical Interview I in about 2 hours. We give feedback to all candidates at the end of the interview so that they can learn something and their time is not wasted.
If you make it to this stage, we are pretty confident in your technical competence and quality of work. In Technical Interview II, we would like to know exactly where you are now — are you a junior, mid-level, senior or lead engineer? How well do you understand the parts of the project that you did not involve? What are the benefits of using a NoSQL database over a relational database? Can you apply Object-oriented principles in practice, during interviews?
Again, we give feedback to all candidates at the end of the interview.
In about 2 hours, we will have a better picture of the level of your skills. This helps us prepare a fair offer for you.
We believe we have found the right frog and we are ready to offer our kiss. The benefits of joining Zuhlke Hong Kong include:
What’s more, you will be working in a nice office where many other princes, not frogs, working together as a team. You will regularly receive constructive feedback, mentoring and coaching.
Still not convinced?
I have accepted the offer and joined Zuhlke Hong Kong and live happily ever after.
30 Jun 2019 by Alan Tai