Building world class engineering teams
(light poppy electronic music) (crowd applause) - Hey guys, can you all hear me? I guess you can, that's good, fantastic.
Well thank you, thanks for a nice introduction. I'm no expert in the field of recruitment, I had to do a lot lately, but definitely I'm not an expert here.
I would say why are we talking about recruitment in general? Why can't we just write software, as opposed to do a lot of other stuff.
It's because I think there's two main areas. One is main reasons I say, one is definitely the fact that each and every company's now getting into software development.
I dunno if you've ever seen this article, it got very viral and it was published pretty much everywhere.
Software is eating the world, it's hard to find a company that even from more traditional kind of industry that isn't actually investing in software development.
And the second one is the 10x dilemma, that's how I call it.
I just wanna understand in the room who has ever heard of the term 10x developer? There you go, most people, right? Interestingly, I did a bit of research and it's funny because it's based off a research in the 1960's.
Was really heavily criticised, but the actual article of the research was so, the numbers were so staggering that even though the research saying that the best developers are 20 times more efficient than the worst, you know, kinda got into the 10x, like kinda tried to smoothen it up a bit.
So the long and the short is, what I mean by these two areas is everybody's hiring software developers.
That market is really saturated from that perspective, it's hard to find the right ones.
Now, I think that if you're a people manager then 90% of your success is the people that work with you. For me it's really, really important to underline that. And I think that most companies fail to put the necessary effort in the hiring process. And the reason why I say that is because, for me, it really set up the stage for the whole tenure. When a software engineer comes on board and had a pleasant process and he's been challenged, he'll stay longer, he'll enjoy it, you'll get a, it's what I call at least a six months of honeymoon for sure.
Now let me give a bit of history about what I've done. My personal experience, I've hired 70 people so far. Alright, I mean I'm being conservative with this number, it's not a huge number, alright, I'll be honest with you. I've interviewed more than 200 people and that's a sad stat to report, but the interesting thing is I've done 60% of that in the last 12 months, and I was kind of compelled to do it. And it was a very interesting and challenging thing for me because I have a high bar.
I don't hire anybody, I actually do believe that the best developers are not that many and they are rare, and I wanna work with smart people, people that can teach me as well as I can give to. And usually volume and quality don't go hand-in-hand. So what I'm gonna give you is a very opinionated view of what I've tried to achieve.
I'm gonna go through a hell of a lot of stuff, and maybe a little bit quickly, but happy to get questions at the end.
If you don't agree with some of the stuff that I'm gonna show, it's okay, it's good.
It's more to kinda get you thinking about it, rather than convincing you 100%.
So, what is recruitment? This is my opinion, for me recruitment is about sourcing people.
It's about assessing their fitness, and it's about, very bad term but I can't find a better one, closing, i.e. convince them to come on board, right? So let's go through these three areas, one by one. Now sourcing, sourcing is what I call all the activities that lead candidates to be interested in you as an employer, right. The two main areas that are passive and active sourcing. Now passive sourcing, and I give you a very bit of a controversial kind of definition.
For me it's all employer branding activities that support sourcing.
Now I put into this a lot of stuff, right? If you look at it I put job ads, collateral like blog posts, job descriptions, et cetera, et cetera, meetups, referrals.
Now interestingly, people would say but well a job ad is not actually an element of passive sourcing.
Well, it is and it isn't.
It sets the expectation, a well-written job ad will attract the right people.
If you actually have one or two blog posts out you can actually give information before someone comes in the first interview. If you host a couple of meetups a year it's not gonna hurt, and it's actually gonna uplift the employer profile. If you do referrals quite well they could be a goldmine. Once you hire smart people they usually have worked in the past with other smart people.
It's a low volume game, the passive sourcing, so don't expect to get a lot of people out of this, but it's worth doing it because it's passive, you don't have much to do.
You've done it once, you invest in it, it kinda keeps on going.
Active sourcing, so here's an interesting one. So obviously active sourcing means you're poaching potential candidates. Now here's one from me, don't try and do it yourself, it's a waste of time.
Go through recruiters because recruiters have got a database.
Most recruiters, for example in Sydney, have got a database that covers 75% to 80% of all the developers available.
And in Melbourne I'm sure it's very similar. So it's a volume game with a big funnel at the beginning and a small at the end.
And so you don't wanna do that because it's very time consuming.
Now when you deal with recruiters, I don't know what's been your experience, but my experience is I've worked with very few good, alright? Very few that have given me quality versus quantity, which means qualified leads.
And those few wants to be paid well, you know, in terms of percentage of annual salary and you know, you get what you pay for.
And you wanna be a long-term relationship, so here's an interesting one.
A lot of companies treat recruitment in a very transactional way.
They just say you know what, we need two people. What's the TNCs, how much are we gonna pay? It's much better if you actually need to have some sort of volume hiring, it's much better to actually look into long-term relationships like retainers, et cetera.
And usually you wanna give the recruiter hard roles to fill. You can use the passive element to get the more junior and mid-level, the passive sourcing, and give the recruiters the hardest one.
Assessment, okay, I'm going very quick but I hope you can all follow.
You're very smart people, so I'm sure you can. So it's a crucial part of the process.
So the idea is okay, so what are we gonna assess? But this question is not, I think the right question, because we need to take a step back and say what person or people do I actually wanna hire? So that can help us define what are we gonna assess and how are we gonna assess it.
Now here's the thing, I had done a lot of hiring before joining, for example, SiteMinder, but when I joined SiteMinder, you know, I had this volume targets to reach.
And so in a way I thought, well, you know, I've just been relatively lucky.
You know, maybe I'm good at interviewing.
Maybe, you know, I'm good at convincing people. But never actually taken the time to write down and define, really, what I am looking for when I interview someone. So what I did is to try and understand this, I actually just went and tried to learn from the best. So if you're familiar with recruitment processes in U.S. west coast companies, you know, the various Facebook, Google, et cetera, Amazon. Not that I actually have taken that process, but one of the element that they always bring to the process is that they actually compile, effectively, what I call a blueprint of a candidate versus an ideal blueprint.
And when there's a high match that goes above a certain threshold they make a hire, right? So here's the thing, you need to come up with your blueprint.
Now I'm gonna share with you my blueprint, okay? Doesn't mean that it's the one you wanna use, but it's just a good starting point.
So I like to define people that have good motivations for leaving the current job, for example.
May sounds weird, but to actually, what really gets 'em out of bed.
I wanna hear something interesting around this. I want people that usually curious, right? That demonstrated interest in multiple technologies, that can understand the pros and cons, they like to learn new stuff.
I want people that can execute at a certain level, you know what I mean? Some of the execution come from a technical challenge, but some other elements can be very easily assessed by just asking okay, how have you improved the current system you worked on, et cetera. I like entrepreneurship so this is a bit of a odd one, eh? But I like people that have worked in startups, have started a startup, failed in a startup or want to start their own company.
And the reason is because usually this kind of trait in a person shows an element of someone that can wear multiple hats, really, and can understands things from a product perspective, not only from a technology perspective, right. And I like people that know how to give and take feedback, right? So you see ego issues, usually it's when people can't articulate feedback in a proper way.
There's no need to take photos, I'll put this online, but I mean you can, alright? Nothing of this is copyrighted, I'll put it online and potentially on YouTube.
So I like when people give, are able to articulate that the feedback that they give is about the solution, it's not about the people. And yes, they need to have tech knowledge, of course. 'Cause otherwise you're interviewing people and you give them a tech challenge and they do it in Golang but you're using Java, and then you know, it's not very useful.
Now how are we doing our assessment? Now I believe that the right assessment, and again, this is very opinionated, you may agree or disagree with me. I think that when I'm hiring a software engineer, 50% of the choice is based on the technical skills, and 50% of the personal skills.
And the reason is because code by itself, at least that's my view, has absolutely no value until it's delivered, it meet the business requirements and it's deployed, it's monitored, et cetera. In order for those other elements to happen you need to interface yourself with the team. So for me it's really important.
Now, I'm jumping on a bit here.
This is a hiring process that I use.
I use it in multiple companies, not just this one. You don't have to follow this process, this process is primarily what I like, for example. So there's usually for more senior people there's a first interview.
And there's then the tech test in their own time, and there's a final panel interview with potentially some HR behavioural questions, if you guys are lucky enough to get a hold of people from HR who want to do that.
Otherwise we have to get developers to do that. But the idea is, effectively, you do your personal assessment of how you think from a personality perspective what's a match, and also from knowledge.
In the first interview, the tech assessment will come from the tech test.
And the final interview it's a little bit mixed. Obviously you're gonna have a discussion around the tech test and you're gonna have a, but also some more general questions as well that kind of have come out on the back of the previous interactions.
Obviously the candidate will have more questions by then. Again, so you don't have to take this as the way to do it. I like to give tech tests to people to do at home because they can be longer, they can be more thorough, they'll be more end-to-end, they give more information and so we can make a better technical assessment. Now if you're doing an interview, the good thing about having the engineering persona, how I call it, is that you can just write down a checklist like this and just take notes, it's actually quite easy. And the interesting thing is, it happens to me all the time, sometimes in the conversation I forget to ask about some elements and it's always good to do it. So having it written will actually really helps you. If you're just going in a nice chat kind of mode, you end up talking about, you know, a lot of technical stuff but not really covering all the areas you want.
Now, let me talk a little bit about the tech test. I like to do a fun, end-to-end exercise.
So at the beginning I started, a few years ago I was using quizzes, like, you know, can you invert an array using only recursion and stuff like that.
Interestingly, (nervous laughter) or stuff like. Now if you guys have ever done an interview process with Amazon, they start with that.
Those quizzes, the reason why I'm not a big fan of them, is that they test IQ and that's it, right? That's all they test, but IQ versus success in the software engineering position, they are related but not as highly related as some companies believe.
So I like to, yeah, I like to give 90% of requirements are clear and 10% have to be assumptions.
'Cause if it's everything clear, you know, it gets boring. In real life, even 90% clear is actually a bit generous. At least you gotta get the people to finish this, right? Clear assessment criteria, okay? I always put them out there.
Have different expectation at different levels, right? Junior person, don't expect the same.
And you have to provide thorough feedback.
I love this element and I always do it.
And you need to make it very factual and very much on the important stuff, but it really helps with the engagement.
Now here's the last bit.
What is closing and why are we need to do closing? Well it's a saturated market.
We all are bombarded on LinkedIn by different opportunities. How do we choose when we wanna change job? How do we choose the one we want? Now it's easy to say, you know what, we have an internal recruiter or there's an external recruiter we're doing, that person is gonna be the one convincing. No, it's not gonna happen.
And every stat will tell you that the hiring manager is a person that can convince way more effectively. The other people, usually they're just intermediaries and they're not trusted as such, and they don't know enough. Most of the time when you're actually dealing with candidates, they wanna know the technology in detail, they wanna know the process.
A recruiter will not know all of that.
So here's the bad news, unfortunately closing is selling. You gotta sell it, and that's the problem, right? It was all fun and games up to here, it's like well, you know, my problem is this. I'm an engineer, I'm not a salesperson, right, so why are you telling me that? Now here's a cool thing, you are talking to another engineer.
Now that makes things a bit easier because let's think about, let's step back and say how do we, how would I evaluate the job opportunity, right? So do a quick Googling, find a million articles on LinkedIn by recruiters I guess, and you find that there's a lot of areas that cover, you know, how we evaluate the job opportunity, you know, challenging, you wanna have an impact, growth, you wanna be paid well, blah blah blah.
All of these are absolutely valid.
But what I've found that really works is just give a candidate all the necessary info. The good, the bad, the ugly, the amazing, all of it. Now here's a funny one, if you only have bad and ugly, maybe you're working the wrong company, maybe you shouldn't be hiring.
So you have to come out with something positive, right? You are trying to convey a positive message, right? So what I like to do is even this section, I've actually spent a lot of time to come out with how would I wanna hear it. And so I come out what a journey.
Like I've noticed that people like storytelling, so a journey.
So you think about, okay, this is a company I'm working for, this is where they've been and this is where they've gone. And you know, the growth, the opportunities. This has been my tenure, this is what I've done since I've joined.
These have been my challenges.
These are the challenges and the opportunities within the company.
And then I usually go into the tech, the products. Okay, so these are the products, these are our technologies. And this is the process that we're gonna follow. Now write it down, rehearse it, learn it by heart. This is your pitch, like a startup pitch this is your recruitment pitch.
So when do you use it? You use it every time you need to.
For more senior people you need to do it at the beginning, depending if you have a first conversation which usually helps convince more senior people because they need to be convinced more.
Definitely use it there, but a little bit use it as well during the panel interview.
Now, very quickly how to run an interview.
You have to have a structure which is set.
It's an assessment as well as a closing tool, because a nice interview gives a nice, you know, feeling to a people, and makes them feel like yeah, this is the people I would wanna work for.
You have to have a nice but firm approach.
This is a bit controversial, I like to interrupt people in the interest of time, okay? I like to dig deeper, alright, when people say we've just rewritten our whole system into Microservices, my question is why? What advantage does it bring and how did you do it, et cetera.
So I like to dig deep.
Do not give away your thoughts and finish the interview in any case.
Now it's very easy to actually be carried away. Sometimes I happen to meet, a guy shows up and after five minutes I was like this guy, nowhere enough. But it's really important to actually finish the interview in any case because this guy may have friends. So it's all about the experience, okay? So it's important also to give a good feeling. So take notes, like I've showed before.
Now here's an interesting one, have a structure. Now it doesn't have to be written in stone but it has to be roughly around this.
So you wanna actually give enough time.
So for example, for senior members it's a 50/50 process, really.
So you wanna give 50/50 kind of a list of 50/50 split, and try and tell them what you're trying to do. For more junior people it has to be less, but always also leave space for questions at the end. Now what are the red flags, okay? She's worried.
So ego issues, these are red flags that I find. Obviously you guys may agree or disagree.
People are real prima donnas, I don't think they're great team players.
People do contradict themselves.
You know, say ah my company's amazing but I'm coming here because I'm open to opportunities.
So why are you open to opportunities if you're working at an amazing company? Contractor mentality, I just did it because I was told to, and you know I'm just paid, I go home and life goes on, not great.
I'm not gonna answer these questions, it's a secret. I was like what's a secret, honestly? We're just moving JSON payloads back and forth, right? Honestly what's a secret, really, you know what I mean? But choice of words, really important.
Like conflict, pulling ranks, once I had a guy that says ah, you know, someone contradicted me in front of everybody and I was a tech lead, I had to take him aside and tell him off, I was like no you don't.
It's good to be contradicted in public, you want people to feel safe and secure in their talking. Exaggerations, right? We migrated 5,000,000 files, I was like but how big they were? Eh, they weren't big at all.
Okay, like these exaggerations I always say they're cute with children but that's it. I'm going really quickly because I don't have much time remaining.
I wanna show you this which is quite interesting. This is actually the journey of a candidate and the level of engagement if you do a good job, right? So when the recruiter contacts, usually you have this first interview and you kind of go in and you's like okay, it's quite interesting.
And then if you do a good job you actually increase the engagement.
Now if we send, according to what we've experienced is that if you send a tech test, what happened is that normally the person will take a few days to do it, and there's gonna be a drop-off, right? And then it's gonna pick up again when they come in for a final interview if you decide to proceed.
Now interestingly, if the process has been a nice process, you can have three outcomes.
You can have a hire with a good interview process, a hire with a bad or a no hire.
Now no hire do happen, it's not a problem.
But the difference here is between a good and a bad interview process.
What's gonna happen is that level of engagement is gonna continue and carry on from the first day up to the first few months.
So you wanna give them a very good experience. You wanna make them understand that they are getting into something really cool.
Because that's gonna set the beginning of the tenure, and it's gonna pay off big time.
Obviously there's a risk there.
What I try to mitigate that risk is I like to write nice emails.
I like to say hey, I really enjoyed talking to you, your energy, your conversation.
I mean this is not something like, this is not cheesy crap, I'm sorry, couldn't find other words to describe it.
I really enjoyed talking to this guy.
We end up hiring him, by the way.
But the thing is, you know, you need to make them understand that you care about them as a person and as a candidate.
And that's gonna pay off because you want them to do something for you, this tech test.
Now it is crucial to validate your approach with numbers, okay? And usually use a window of two to three months. Even if you're hiring one person to a hundred it's the same thing, validate your approach and take a step back. If things aren't working you gotta change something, alright? Now I'm just gonna show you some stats here. This is a real stats from the first six months when at SiteMinder, but.
The stat's actually quite good then they got much better afterwards, this is a funny thing. So what I wanna point out is the last three lines. So we had hired 14 out of 58, so it's actually 24%. You may think it's low but it's actually quite high because we were asking a lot from people.
And there's also the number of people that accepted an offer after we made it out, 73% is actually quite good.
I wanna just point out another thing.
If you have a standardised process and you write it down and it's clear for everybody, what's gonna happen is that you naturally gonna attract more people from minorities.
Now I'm not an expert in this area, but this is purely anecdotally.
We've hired a lot of people straight from different country that couldn't speak very well but they were really great coders and they could communicate in other ways.
We've hired three women, the number's gone up now so we almost have 15% of our developers are women, interesting.
So maybe it's because we tried to make the process quite nice, so, you know, it kind of attracts people that are not usually attracted when there's too much testosterone, I think. So yes, those numbers are quite good.
So just to recap, I hope I haven't gone over. Sourcing is an element of employer branding and dealing with recruiters.
Assess, in order to assess someone you need to have an ideal of how that person is gonna, what your ideal candidate is, and they need to do a tech test.
In order to actually sell it to a candidate you need to have some sort of pitch, right? If you ever worked for a startup, the pitch deck is what they always go around to get funding. Now you do one to actually get candidates.
And your tech test, if it's nice enough, if you're giving thorough feedback, if you're actually adding value to the candidate that's also gonna help you a lot with closing. I'm just gonna leave you with this.
Jim Rohn, great motivational speaker, used to say life seemingly doesn't seem to waste success on the unprepared, and it is true.
You need to put some effort, you need to think it through and the results will come.
Thank you.
(crowd applause) (light poppy electronic music)