Hiring is aggravating, tedious, hard. We startups, against everyone in the market out there, know this too well. But it is gratifying when the result of such efforts make a positive impact on colleagues and to the enterprise.
One should focus on hiring key people from the start not only with the skills we require but who would also build-up the foundation of the team’s ethos.
What makes a great software engineer?
Technology in our age is like white sand forever shifting under our feet. We stand still at our peril.
Great engineers know this well. They know a lot already but may not yet have expertise in areas the enterprise may require. So they are teachable. They are great at learning what needs knowing when needed. Some even become experts on the next big thing by their own volition. We startups pay close attention to candidates with such dexterity. We give them every opportunity to grow and be influential to the team once on-board.
They possess and express their passion to learn and work, their aptitude to do all these things and the humility to be taught by anyone and collaborate with everyone effectively.
They work well in isolation yet thrive in a team environment too. They know how to work in a team well and what makes great teams work. They communicate their ideas and teach others well.
Perfection is their North Star yet they make decisions with practical clarity.
The great ones have skills in both technology and people. Not all possess both in equal measure. So to aim for equilibrium in the team is key by complimenting different areas and levels of their capabilities to each other. This balancing act would occur naturally due to some in the team who possess stronger people skills.
Also, they are to be the team’s ambassadors to everyone out there — at meet-ups, conventions and corporate events. With such traits, they would wear this role naturally.
And they will volunteer to get involved in the hiring process later too — to screen, interview and evaluate.
The chances of great engineers turning up on one’s shortlist for interviews are slim at times. But if a promising candidate is to become a great engineer one day, to be in a team with the right culture, they will be.
Culture matters to them too
The right culture in a team would be the spirit that cultivates tenacity, agility, diversity, compassion, and camaraderie. It inspires excellence and respect in one’s self and to one another. It has a major influence on the success of an enterprise.
Micromanagement won’t cut it if the market reach of your enterprise is to be vast, its scope is ambitious, its rate to scale is to be exponential.
Instead, the right culture would shape the team that everyone would think for themselves yet take care of each other, could do anything, would do the right thing, won’t sit on the bench for long and won’t quit.
Of course, one should hire people that match the criteria required by the enterprise to deliver its objectives.
But it also pays to holistically look for attributes in candidates that will contribute, nurture the culture and performance of the team — qualities beyond the job description and technical criteria.
Otherwise, to overlook such traits when hiring people may short-change the enterprise later — even hurt its prospect in the long run.
Birds of a feather flock together, as the saying goes. And hiring people for the engineering team is no different.
Pair-coding with candidates is the most effective test
Technical questionnaires and brainteasers were a waste of time for me in the past. These would tell me what the candidates already know about stuff anyone can look up on the internet. These don’t reveal anything else about them.
Some applicants would not reply back to my email invite for a pair-coding session. The invitation does its job of saving my time from being wasted. The applicants we should care about are the ones up for the challenge, especially those who fear it but do it anyway.
I ask them to bring their laptops if they have one. A dedicated coder usually would have their own machine rigged with their own software, databases; configured to their preference.
The pair coding session proceeds after the verbal interview. I give them instructions on what to code. I sit beside them; either start the build in front of them or ask them to start building it from scratch by themselves. Then I leave them to complete the build; come back and check on them after about 20 minutes.
If they complete it without problems, I ask them to extend their build with more complex tasks. The level of complexity of what they’re to complete next depends on the level of confidence and knowledge they have displayed so far.
If they haven’t completed their work, I would give them a bit more time if they’re on the right track. Else, I’d complete the build with them. If the technology stack we’re after isn’t my forte, I either delegate the session to someone in the team who knows it or ask the candidate to build one from scratch by themselves and guide me through the stack and their coding work.
I then give a critique as I go through their build — write more code with them if need be. Our interaction at this point is the highlight of my evaluation of them.
Half the skill of a great candidate is how well they comprehend what they need to know, what they have to do to deliver their work e.g. skills, knowledge, etc.
The other half is how well they diagnose problems; how their aptitude aide them to solve and foresee issues — like a detective solving a crime.
They don’t have to complete the work to pass. But:
- How much did they care about how they did at the session?
- How much care did they put in their work — patterns, principles, any at all?
- Did they care when they didn’t complete their task?
- How well did they use resources like the internet to solve their issues?
- How meaningful were the questions they asked?
- How did they engage, reciprocate?
- How well did they welcome and comprehend an area of skill or knowledge they had just been introduced to?
Their interaction at these sessions reveals enough their level of capability, their capacity to learn (if they could tolerate being taught), their communication skills, intuition, etc.
Great interns make the difference too
One should also evaluate internship candidates with exacting criteria on aptitude, passion, and humility just like with job applicants.
We had an intern who flew in from Switzerland. By getting involved with us, he learned how our program for financial inclusion is developed for the rural community.
A documented business case written by another intern attracted attention from potential investors in Japan — one among other assets produced by them at our venture.
They too become the team’s ambassadors at their campuses and to their peers.
Making valuable time and due care for young minds — our future leaders, future entrepreneurs — makes the difference to any enterprise. It certainly has for us.
Evangelize the mission
We startups have our mission to accomplish. We evangelize about it to investors and potential partners with great aplomb.
Pitch the mission to interviewees like a storyteller as if you’re talking to an investor, attempting to raise capital for the team.
I attempt to impress them with our mission; make them understand this is an opportunity of a lifetime for them to be part of.
The mission is a valuable proposition to us startups — a great gem that shouldn’t be given away easily.
So don’t just hire anyone. They have to impress too.
One candidate was rather taken aback at her interview with me that she recommended her colleagues to apply too. “I fell in love with PearlPay”, she said to her ex-colleague who later applied; is now our Senior Engineer.
Another great candidate, a Project Manager, jumped ship to ours — a startup with a humble working capital and workplace in Makati, Philippines — from a competitor who had been in business a lot longer than us with a plush office floor at an exclusive location in the city.
Great people want their work to mean something; what value they will be contributing to.