We have a different model for hiring software engineers at Yellowfin, and it doesn’t involve HR.
When you’re an early-stage startup, trying to hire and attract people is difficult because you don’t have a lot to offer. You don’t have job security, you don’t have high salaries, and sometimes you don’t know if you’ll be around in a few months. It’s hard to attract top quality people.
In the early stages I spent many hours and thousands of cups of coffee trying to convince people to join Yellowfin. As our brand has grown, it has become easier to attract talent. But it’s also become even more important to make sure we make the right hiring decisions.
Through our journey at Yellowfin we’ve hired hundreds of software engineers. Here’s some of the things I’ve learned.
A great software engineer is like every other great employee
I don’t think a great software engineer differs from a great employee more broadly. You want someone who is committed, who cares about what they do and who turns up to work with their brain turned on. That’s a great employee, it’s as simple as that. The difference is when you’re hiring a software engineer you’re also asking for another specialist set of skills.
Obviously they need the ability to code really well, but it’s not just about the coding; it’s about their contribution to the future direction of the software. Anybody can code to spec, but you want people to think about what they’re doing and be really engaged with the broader organization. That’s what sets our best software engineers apart.
We make software developers hire their own people
To make sure we hire the right people we’ve developed an interesting hiring model at Yellowfin. We let our software developers hire their own people. I’ve had HR people disagree with me, but I don’t think hiring software engineers is a job for HR.
We’ve learned over time that if the team hires their own people they’re far more engaged in the process. They think about the fit of that person and they’re much more concerned about the contribution that person will make to their team.
In the past, we had a different process where management did the hiring. We found there wasn’t the same level of commitment to the individual when they came onboard. If they didn’t work out it became a problem for management to deal with rather than the team’s problem.
This team-led hiring process doesn’t just apply to software engineers – it also applies to sales, finance, and the rest of the organization. It’s very rare for anyone outside a team to be involved in the hiring process unless that person works across multiple teams. In those situations we get multiple people together to have a say in the hiring process.
For example, when we hired Adam Chicktong, who runs Asia Pacific Sales, he was actually interviewed by the people that would be reporting to him. I had a very brief conversation with him, but ultimately his team chose him. They were the ones who need to work with him, respect him, and trust him.
Who ultimately makes the final decision also varies by team. For example, in Japan it’s very consensus driven as cultural fit is super important there. The dynamics of the team are really important, so the whole team is closely involved in the hiring process. In Australia, each team has their own approach.
My best advice for hiring software engineers?
I can’t say that every hire has been a great hire, but that’s also part of the process. Each team needs to understand the consequences of a bad hire as well as good one. When they make the wrong choice it becomes very obvious, and the team has to think about how to deal with the consequences.
I remember a particularly terrible hire a few years ago who was in the organization for way too long. When he finally left, the team made a commitment to never let that happen again, and that was the last time they hired a person with those traits.
When it comes down to it, it’s easy to try and push down wisdom and experience, but sometimes these things need to be learned bottom up. By giving teams responsibility for their own hiring, it’s a great way for individuals to think about their own contribution and how they can build a strong team.
So, my best advice for hiring software engineers? Don’t do it (personally). Push responsibility down to the team the individual will be working with. I haven’t personally hired a software engineer for many years, and that’s what makes our team and culture at Yellowfin so great.