Here at Shamaazi, we’ve recently gone through a round of hiring… and wow, hiring is hard!
It’s challenging finding engineers who have the right qualities, attitude and personality to join a team. We’re a tiny company, with just 2 engineers, so any new teammates have a massive impact on our products and culture.
We’re super careful about who we hire because of this.
We don’t expect or search for rockstar developers who can recite algorithms and live and breath software. We don’t expect the world’s most qualified experts in the technology we use. We don’t expect people to spend every moment of their spare time programming.
The qualities we do look for are probably considered unusual compared to most software engineering outfits. Let's take a look at the three we use to ensure a good fit for working at Shamaazi.
Eagle-eyed attention to detail 🔍
We give our potential candidates a short engineering assignment as part of our hiring process. We explicitly request that they don't spend more than an hour on it, but it still gives us a vast amount of information that just simply isn't evident from their CV.
Reviewing these assignments has been eye-opening. Most solutions lack attention to detail in at least one area. We begin by asking relatively simple questions of the submissions:
- Correctness – does the solution work for all inputs?
- Validation – are the inputs validated, what happens if we try to break the system?
- Testing – How do we know their solution is correct? Is there any proof that it reliably works?
- Quality – How easy is their solution to understand, maintain or extend?
Most technical tests we’ve seen fail on at least two or three of these, if not all four. Quite simply, they lack attention to detail in both their quality and behaviour.
This lack of attention to detail also applies to CVs. We’ve seen poor grammar, typos and even sentences that don’t make sense! Quite frankly, if they can’t complete a short assignment with rigour, or can’t write a CV without errors, can we really trust them with a product that could shape the future of our company?
The ability to express clearly 🗣️
Writing good code, a good CV, or writing prose all have a lot in common. They are all forms of communication.
Writing good code is about communicating a set of requirements both to the computer, and to a future maintainer, CVs communicate your skills and knowledge to a potential employer, and prose is a form of communicating ideas by writing them down.
As a result, the ability to express yourself clearly is super important. Engineering teams don’t work in isolation, and working remotely causes a whole new set of challenges for communication. In order to stay well-aligned, agile, and have the ability to discuss complicated topics, we communicate constantly as a team. This is a fundamental aspect of a team being high-performing.
So, when reviewing engineers, we have to consider a few key questions: Does their code communicate its purpose clearly? Is it well structured? Well written? Does it clearly separate concerns? Does it have sensible naming? Does their CV communicate their strengths and experience eloquently and concisely? When prompted in an interview, can a candidate clearly express their thought-process? Can they articulate complicated ideas?
If the answer to all of these is ‘yes’, then we know we have a candidate who is going to be a delight to work with.
A positive outlook 😄
This one sounds strange, but I was first introduced to the idea by Patrick Collison, the Founder and CEO of Stripe. In his excellent talk ‘How to Scale’, Patrick discusses in great depth the difficulties in building the culture he wanted.
At an ideal company, we would go to work and everyone would be happy. People would love their jobs and be enthusiastic and supportive. The question then becomes: ‘how do we create a company where this is the culture? Where the atmosphere is happy’. This is an incredible challenge, one that has no easy solution.
As a side note, if anyone knows how to build a company that can turn unhappy people into happy ones, please let me know (I’d like to send my parents there)!
Thankfully, Patrick Collison also shared his ‘cheat’ to achieve this. Simply hire people who are happy, positive people already. This is the culture we want to build, so we’re taking the same shortcut he did at Stripe. By hiring happy people, we can ensure we maintain a happy culture.
Closing Thoughts #
As a tiny company, we have to be incredibly careful about the people we hire. They can have a massive impact on our products, for better or for worse, and contribute heavily towards our culture. Because of this, we deliberately look for these three qualities as signs of excellence in people.
If we can find people to hire who show three key qualities: a happy outlook, the ability to express themselves clearly, and a keen eye for details, then we know they will be a brilliant hire.
Would you like to hear more about our hiring process? Do you want to know more about the problems people have in our technical assessment, or the common errors on CVs? Get in touch and let me know.
Enjoyed this post? Want to share your thoughts on the matter? Found this article helpful? Disagree with me? Let me know by messaging me on Twitter.