Recording Venue: Skype
With this episode, Software Engineering Radio begins a series of interviews on social/nontechnical aspects of working as a software engineer as Tobias Kaatz talks to Randy Shoup, former CTO at KIXEYE, about hiring in the software industry. Prior to KIXEYE, Randy worked as director of engineering at Google for the Google App Engine and as chief engineer and distinguished architect at eBay. Randy has spoken on various occasions about how to hire great people for highly productive teams and his own experiences in doing so. In this interview, Randy talks about how companies can find the right candidates, how candidates can get the attention of the companies they really want to work for, and how interviews and social media can assist in the process. He and Tobias also discuss the notion of always hiring “A-players” and its influence on the teams and on the people who live in an area where only “A-players” get hired. In addition, they talk about the “Google way of hiring” and how to get candidates to come to a second interview even if they failed the first time.
- KIXEYE Homepage : https://www.kixeye.com
- Randy Shoup on “The Virtuous Cycle of Velocity”: http://youtu.be/EwLBoRyXTOI
- Randy Shoup on “Scalability at KIXEYE” (also on how to scale teams): http://www.infoq.com/presentations/kixeye-scalability
- Randy on Twitter: https://twitter.com/randyshoup
Announcer: This is Software Engineering Radio, the podcast for professional developers, on the web at SE-Radio.net. SE-Radio brings you relevant and detailed discussions of software engineering topics at least once a month. SE-Radio is brought to you by IEEE Software magazine, online at computer.org/software.
Tobias Kaatz: Hello. This is Tobias for Software Engineering Radio. Today we are starting a new chapter of our podcast that is dealing with social aspects of working as a software engineer, and we want to start by talking about company culture and hiring in the software industry. I am very glad to have Randy Shoup to talk with me on that topic. Randy has worked for various big companies like Oracle, eBay, and even Google, and today he is the CTO at KIXEYE. Hello, Randy. Welcome back to Software Engineering Radio.
Randy Shoup: Thank you, Tobias. It’s great to be back.
Tobias Kaatz: In episode 109 you talked about architecture at eBay and now you are in the gaming industry. How come?
Randy Shoup: Oh, that’s a fun transition. So I worked at eBay as the chief engineer for about 6.5 years and I talked a little bit about those experiences and the things that I learned there in episode 109, like you say. Then I had my own little startup after that and I like to say I don’t have my own island, so we know how that went. But it was very fun and I learned quite a lot. I worked at Google then as the director of engineering for Google App Engine, so that’s a platform as a service, and about 3 million different applications run on the platform. And then for the last year or so I’ve worked as the CTO of a gaming company called KIXEYE in San Francisco.
And the transition is an interesting one; I was very happy at Google and eBay, I learned a lot about building very large systems and scaling organizations from small to large. And one of the things that KIXEYE is in the process of doing is growing from small to large. So they were interested in somebody who had experience both scaling infrastructures to support tens of millions, hundreds of millions of users and then also people who know how to scale organizations to support that large amount.
And what I’ve found that I’ve – I’m enjoying my time at KIXEYE immensely. The gaming industry is extremely vibrant, extremely fun, extremely passionate. And what I’m able to bring is, like I say, that sort of large-scale Internet infrastructure, eBay and Google approach to server-side work, which is sort of where I’ve done most of my work. But what I’m getting to learn is the other half of gaming, which is the very exciting graphics game play, physics engine, simulation; areas of computer science I haven’t touched in 25 years. So it’s a lot of fun for me.
Tobias Kaatz: Wow. Great. But it has still been a big step, I suppose?
Randy Shoup: Yes. So it, again, like I say, it’s an opportunity for me to help to bring some of these large-scale server-side techniques that we learned the hard way at eBay and Google and apply them in an entirely new domain. And KIXEYE makes – I didn’t say this, but KIXEYE makes real-time strategy games in both Web browsers and on mobile devices. And the interesting part about that for the engineering is the real-time. So all the things that one would learn about building large-scale systems that have extremely low latency and are very highly-responsive for uses, you know, are applicable whether you’re doing it as a platform, as in the case of Google App Engine, or as an e-commerce site, as in eBay, or as a game, as in KIXEYE. So a lot of the lessons – really all of the lessons are directly applicable. So that’s been great for me.
Tobias Kaatz: Today’s topic is common to almost every one of our listeners, including me, of course, but you’re doing actually talks on that topic. Why did you decide to go out and share your opinion on hiring and culture and things around that?
Randy Shoup: Oh, thank you. That’s a great question. I think, like you say, because it’s universal. I’ve enjoyed – I talk about lots of different things. You know, I’ve talked about Internet architectures, you know, large-scale architectures for a long time, and I’ve been talking about analytics and about dev ops. But yeah, like you say, the culture and the hiring and the people side of engineering I think gets a little bit we would say short shrift, you know, gets a little bit under-talked about, and it’s extremely important for every company, you know, whether you’re engineering or not. But particularly in engineering, you know, we think so much about how to keep the machines happy that we maybe don’t spend as much time as we should on keeping the people happy.
Tobias Kaatz: Yes, you’re right. Do you remember your first chance of actually influencing the culture and the hiring process of the company?
Randy Shoup: Yeah, well, I suppose the obvious. Well, I mean I think every time anybody is in any position where you’re responsible to hire somebody you have at least a small impact, right? So I mean even way back in the beginning of my career, almost 25 years ago, at Oracle, you know, we were hiring people and we were trying to choose people that were good team fit, good cultural fit, good skills fit for the team. But broadly in a company, I mean obviously the startup that I worked on with, you know, after eBay, there were just two of us, and so every hiring decision was very much forming a culture.
But the one that’s had the most I think lasting impact is here at KIXEYE. So KIXEYE is about 550 people, based in San Francisco, like I mentioned. And that’s large enough for us to be hiring for many different positions all at once, and also small enough so that the culture hasn’t maybe congealed or, you know, is still malleable, is still able to be influenced. And so there was already a culture, of course, there before I joined, but one of the things that I’ve been trying to do as a bit of a side project is to help to bring some of the good things that I took out of my experiences at eBay and Google and then not to do some of the less-good things, you know, and apply those. So those are some of the things that I’ve been talking about recently.
Tobias Kaatz: Yes. Is there a certain situation that you can remember where you wanted to change the way your company is hiring and you were not really in line with the culture of the company, but you were too early in your career to actually change the circumstances? Is this example something you’re now referring to as, “Okay, I want to do it better now” than say 20 years ago?
Randy Shoup: Oh, absolutely. Yeah. I mean I think in all situations, whether it’s hiring or engineering practices or whatever, you know, a lot of us in – most of us in the industry love what we do and are passionate about it and want to do the best, and often have opinions, often strong opinions about how the organization that we work in could do things better. So in many ways I can’t remember a company where I didn’t feel like we could improve. Do you know what I mean? There’s always an opportunity to do things better.
And I think you’re absolutely – I mean the implication in the question I think is absolutely right, that, you know, you need to have some – it’s helpful to have some I’ll say organizational leverage, right, some influence over the organization to help with that.
But, you know, anytime you’re in a position, no matter what level you are, anytime you’re in a position where you are actually interviewing another person, and I hope that’s true of basically every listener who’s an engineer that they’re interviewing people, you know, that’s your opportunity to influence. And, you know, as maybe you do more management and, you know, you’ll have a broader influence. But the influence that you have, you know, just simply being at an interview with another potential candidate for your company, you’re both obviously selling, if you like. I mean that sounds a little crass, but you’re both projecting to the candidate what it’s like to work in your group and in your company, and at the same time evaluating that candidate against like, you know, skill – ______ skills and team and company culture. So that’s a very direct and personal way that everybody can have an influence, I think.
Tobias Kaatz: Yes, definitely. Although I think this might vary depending on which company you’re actually working with or which culture you are living in, ‘cause I think there are main differences between the states and working in the States and working in let’s say Europe or even Germany. But we will get back to this later.
Do you think that software companies actually focus on different aspects or goals or tasks than let’s say manufacturing companies or even plumbers? Or do you think that hiring is in the end everywhere following the same rules?
Randy Shoup: Oh, well that’s an excellent question. And I’ll say my sample size is – so my experience is in mostly software companies and some hardware companies, where I work in the software part. You know, Intel as an example. But mostly I work in the software industry. But I would assume, to your point, that – well, I guess the way I would answer is I think there are many things that are common and I think there are many things that are different by industry, right? So the things that are common that you’re looking for are motivation and initiative, you’re looking for cultural fit, you’re looking for people that are good in the – you know, can demonstrate effectively the skills that they have, and also that they can communicate and collaborate with other members of the team. And I think those are pretty universal.
I don’t know, I mean you gave the example of a plumber; I mean most plumbers individually, you know, so – but in a car manufacturer, boy, you know, that needs to be extremely highly organized, you know, not just a few tens of people to produce, you know, a software, but thousands, tens of thousands of people that are all working together to produce an automobile. Anyway, so I think that those soft skills, if you like, you know, are universal across different industries.
But yeah, in software we do have some challenges in that – or some differences in that – what’s the way to say it? We have some opportunity to evaluate people skills in an objective way, and I think you and I will talk about that later in the interview, but for the most part software is a sufficiently young engineering discipline, and some people would argue it’s not even yet an engineering discipline to the level that mechanical engineering or automotive engineering or aeronautical engineering would be, and so we don’t have, for example, well-known and well-respected sort of certifications that go – you know, the concept in many countries, Germany and the U.S. in particular, a concept of getting a certification as an engineer, that demonstrates you’ve done an apprenticeship and multiple years of training and so on. There’s not that concept yet in software, and so in some sense for the interview process we have less to rely on outside of the interview process and more to do within the interview process, if that makes any sense.
You know, because you can’t implicitly – I mean people have, you know, lots of people have university degrees that are relevant and, you know, work experience and so on, and you know, those are obviously good mechanisms to help to evaluate people skills, but there’s not a common objective, well-respected, broadly, you know, covering concept of, you know, engineer or something like that, right?
Tobias Kaatz: Yeah, not really standardized definition of what a software engineer actually is. Something all the companies are lacking of and have problems with, evaluating, of course. And one thing I recognize is that you don’t really get manufacturers, or let’s stick with my example, plumbers, through social media and through other means. I think today companies are hiring software engineers. How do you and how does your company find candidates?
Randy Shoup: Yes, that’s an excellent question. And it’s something we’re asking ourselves all the time, because KIXEYE is based in San Francisco and the San Francisco Bay Area is, particularly now in 2014, a very hot market, by which I mean it’s extremely challenging to find well-skilled engineers, because there are lots of companies that are looking for many of the same people. There’s a little bit of an edge to work at a company where you make games, so that works a bit in our favor. But still, you know, there’s a lot of competition, which is a good thing.
Yeah, so how do we find candidates? I mean first and foremost the best way to do it is direct referrals from people that you, you know, that I’ll say for myself, direct referrals from people that work at KIXEYE who have worked with other people. You know, and that’s by far the best way on a lot of different dimensions. So it’s best in the sense that, you know, the person, the KIXEYE employee who knows the candidate has a very deep knowledge about that person’s skills, communication style, cultural fit and so on, right? If you worked with somebody for years, that’s a lot deeper knowledge about them than a couple of one-hour interviews, right?
Tobias Kaatz: Definitely.
Randy Shoup: Yeah, so that’s first and foremost the best way to do it. And that’s true of every company.
LinkedIn has been a godsend to all this stuff, both as a candidate, you know, or a potential candidate, and as a, you know, a company looking for candidates. I mean it wasn’t too long ago – I mean before LinkedIn there was basically no way you could find out peoples’ résumés. Right? You couldn’t find out their work experience without asking them. And so the ability just simply – I mean there’s way more to it than this, but just simply the ability to – I’m going to meet with somebody and I can look them up on LinkedIn and typically they’ve given some part of their background and some context, you know, that’s hugely valuable. And then being able, of course, to search for people that match particular skill sets, who have worked at other particular companies, that’s usually valuable as well. And then of course there are a bunch of aspects of the LinkedIn offering that are specifically for recruiting, and those are even more, you know, even deeper and more valuable.
But LinkedIn has been a huge boon to both candidates and companies, right? Because on the flip side, if you’re looking for a job or even if you’re not, you know, it’s well-accepted – let’s say it this way, it used to be that if you sent out your résumé you were looking for a job right then, you know, and so the idea of simply getting your résumé out there was an implicit indicator that you were unhappy and you were looking for a new position, right?
Tobias Kaatz: Yeah.
Randy Shoup: And that’s no longer true in LinkedIn. I mean it’s expected – like I find it odd when I – you know, there are a handful of people that I’ve met, really just a handful – handful of people I’ve met recently, personally or professionally, that don’t have a LinkedIn profile, and they’re typically in industries that aren’t software, right? You know, just ‘cause it hasn’t penetrated those industries. But the vast, vast majority, you know, the 99-percent case of people that I know personally or professionally have some, you know, reasonably detailed profile on LinkedIn, and that’s usually helpful.
Oh, I guess the point I was trying to make was so now just simply having a LinkedIn profile is – it doesn’t indicate anything about whether I’m seeking a position or not. Does that make sense?
Tobias Kaatz: Yeah, that does.
Randy Shoup: So it used to be that putting your résumé out was itself an affirmative indicator that I want to work somewhere else, and now just simply having a LinkedIn profile is expected, like that’s a baseline expectation. And that’s nice because it makes – this is real – I mean hiring people is, it’s a marketplace, right? I mean whether we actually exchange money or not, the general idea is that you are bringing together producers of, you know, work and consumers of work, if you see what I mean, right? It’s the bringing together of candidates and companies is what this is all about, and LinkedIn makes that very seamless. I mean, you know, the analogy is pretty obvious to it’s kind of the eBay of, you know, of human talent.
Tobias Kaatz: Yeah, which is interesting, ‘cause in Germany it’s actually not that important at all, but we have a different product crossing, which is taking the place.
Randy Shoup: Yeah. Sure. There’s nothing magic. I mean to your point, there’s nothing magic particularly about LinkedIn. It is buffing in the U.S. for sure, but yeah, I mean it makes total sense that in different markets there would be different offering.
Tobias Kaatz: And everything just aids to build your own brand.
Randy Shoup: Exactly. One of my good friends and mentors from many years back, a guy named Girish Pancha, who ran engineering at Informatica for many, many years, and for whom I worked at Oracle in the early part of my career, said many years ago, and it was so pressing, and he said, “You know, Randy, you need to think about building your own personal brand.” And the wording was exactly that, and I thought, “Well, brand, that sounds like marketing, and I’m an engineer and I don’t do that.” But then I’ve been – I mean I’ve thought about that in the years since, and he was absolutely right.
You know, so yeah, for that I encourage, obviously, you know, the baseline thing is to have the LinkedIn profile or the German equivalent, of course. Right? And equivalently there’s a Chinese equivalent, you know, LinkedIn isn’t big in China, you know, that sort of thing, right? You know, and Japanese I’m sure. You know, so different – you know, do the moral equivalent of that in your market. So that’s the baseline.
But then sharing your skills and code via Get Hub, speaking at – so first attending conferences and Meet Ups. Well, Meet Ups, I guess you know to start with that because they’re relatively inexpensive and often local to where you are. And then attending and speaking at conferences. All these things are ways of both giving to the community, right, participating in the community, and at the same time, you know, crassly, building your own personal brand. And that’s exactly how the best way – really I will say looking back through my personal career, I have always – this is maybe odd, but I don’t think so, every time I’ve made a job change it’s been not because of – it’s been because of a personal connection, right? It’s always been a referral, a friend of a friend. And many times it has been not because I was affirmatively seeking it, but because the friend of mine or the friend of the friend was looking for somebody with a particular skill set, and the more that you can have that personal brand and that personal set of connections and that personal network, you know, the broader opportunities, that you have to find something that you really, really like to do, you know.
Tobias Kaatz: Yeah. But then – well, you were talking about the referral system in __________ and LinkedIn and stuff, so you know so much about a person once you actually get to talk to him or her in the end. What is the actual purpose of an interview then, if you know so many things about him or her before then?
Randy Shoup: Oh, that’s great. So ideally what you would find out through LinkedIn and GetHub and various other mechanisms is a bit the skills of the person, right? But what you don’t know is anything about how they would fit in your team or in your company culture. So I guess these are all equally important. You cannot find out cultural fit in an easy way from, you know, LinkedIn. So there you need personal connection, and whether that’s interviewing somebody remotely over Skype, which is actually we do a lot of this and it works well. And in person, you know, obviously as well. So doing all the kind of human, the evaluation of the human, how is this person – how would this person potentially fit into the team and into the company?
And then the other thing is, you know, evaluation of somebody’s coding skills and thinking skills is a lot easier to do when you can have a back-and-forth, right? You and I are having a conversation now and it’s a lot deeper because we can go back and forth, and that would be true whether we were talking about code or about hiring. You know, so that’s the other part of it.
And we do this at KIXEYE, and other places do as well, for particular skill sets we have a sort of coding test, you know, that we give to people that they can do, sort of a take-home thing and they work on it, you know, please build us – well, we don’t do this, but, you know, build me a real-time strategy game and show it to me. But, you know, one could imagine doing something that gives people an opportunity to demonstrate their skills. And then you can talk through that in the interview, you know, “Well why did you make this design choice? Let’s talk about it.” And that’s a hugely, hugely valuable.
Because at the end of the day, you know, this is true at much at KIXEYE as it ever was at eBay and Google, we’re looking for smart, motivated people, and, you know, it’s a nice-to-have when somebody comes in with a skill set that we already – that we want. You know, but it’s almost – I was going to say “almost more important” – is exactly more important that they have the ability to learn that thing, right? Because one of the things that I think doesn’t work well in hiring, at least in the software industry, is trying to have a particular – like I’d rather hire a person that can learn the skill, whether that, you know, Scala Anaka or, you know, a game AI engineer or graphics, like I’d rather hire somebody, I mean ideally of course somebody that’s already been doing it for a long time. But as between somebody who has that particular skill but no others and is limited, whether because of interest or because of skills, to just that one thing – you know, I’d rather hire somebody who is a broader, more – we say full-stack engineer, right; somebody who can go up and down and left and right in the stack, than somebody who is very specific to one particular technology, right?
And I don’t want to leave people the impression that we’re only looking for kind of undifferentiated cogs and everybody’s all the same. Like no, I mean I would be a terrible graphics programmer, a terrible UI programmer. So I don’t at all claim that people don’t have expertise or interest, but what we are looking for are people that are broad in those interests and skills, rather than extremely narrow.
Tobias Kaatz: Yeah, and it kind of limits the ability of your company to develop in a different region or in a different way once you decide, “Okay, let’s do this in that stack” or this in that language, since it’s coming up and everyone is actually following it. If you have people who are only limited to they’re good in it, but-
Randy Shoup: Yeah, absolutely. Yeah, absolutely I agree. I mean and actually one of the ways that people implicitly indicate that is if they define themselves as I am an Oracle DBA, I am a C++ engineer, I’m, you know?
Tobias Kaatz: Yeah.
Randy Shoup: And there’s really nothing wrong with being expert in those areas, right? But there’s an interesting subtle thing about whether you define yourself by the particular stack and by the particular skill or whether that’s just something you have expertise in, but you’re also interested in learning other things, you know?
Tobias Kaatz: Sure. Yes, of course. In some of your talks that I’ve seen on the Internet you were speaking about the concept of hiring so-called A players and about the strategy Google has in terms of hiring. Especially in terms of hiring people who have a more open mind than not just, you know, closely to this one skill set or whatever. What does that actually mean, to hire A players? And how would you hire people in general?
Randy Shoup: Great. Yeah, so let me just say what I mean by hiring A players. So it is reasonably – well, not reasonably – it is very well-documented and studied that particularly in creative industries like software, the difference in productivity between the sort of most productive people on the scale and the least productive is not just like 1.5 or 2 times; it’s like 10 times. So the most productive engineers in a company sufficiently broad are sort of 10x as productive as the least ones.
So since that’s true, you’re better off as a company when you have this opportunity to hire those 10x people, because, A, you can hire fewer of them, and B, if you hire fewer of them you can have smaller teams, and simply by having a smaller team there will be a lot less communication and coordination overhead and the team can be more productive. So all else being equal, a company is much better off hiring somebody that’s more skilled rather than less skilled. And I don’t actually say experience, because while one hopes there’s some relationship between the amount of time that’s somebody’s been doing a particular skill, it’s not linear or, you know, obvious that, you know, just because somebody’s been doing longer that they’re necessarily more productive.
Tobias Kaatz: Yeah.
Randy Shoup: Okay. So we’ll just start with that; that’s sort of how I define it.
But you asked a very excellent and subtle point about, well, is that an objective or a bit subjective. Well, think of it as the World Cup is going on right now and so if, you know, the national teams of the – the best national teams don’t have all the same player, right? You know, there are people that there, A, they actually can play lots of different things ‘cause they’re skilled in all the skills, but form a team – you know, a great national team is formed from a combination of players that have different skills and different abilities. And a particular player that’s excellent on one team, you know, isn’t necessarily going to be a good fit for another, right? The Brazilians play different – a different flavor of soccer than I’d say – football, excuse me – than the German team, than the Spanish team, you know, than the Dutch team, etcetera. And so the best player for a particular team fit is a bit unique to that team, if that makes any sense.
Tobias Kaatz: Yes. And sometimes the coach would even be forced to swap players because the second-best player is actually fitting best in the team and is able to help the team more than the individually better player.
Randy Shoup: Exactly. Yeah. So when you’re evaluating – I mean really at the end of the day the goal is to make the team productive, right? And so to form, you know, we’re using the football analogy, and it’s a good one. Another analogy is a symphony. You know, you want to have lots of different players of instruments that are each individually skilled in their own areas, but it may not be true that the absolute highest skilled cellist is the best one to play in your quartet, right? It is almost certainly true that a fit to that quartet, or to flip again, a rock band, right?
Tobias Kaatz: Yeah.
Randy Shoup: You know, that’s an even better analogy ‘cause it’s more sort of visceral for most of us, the best guitarist is not the best fit for any possible rock band, do you know what I mean?
Tobias Kaatz: Yes, I do.
Randy Shoup: Yeah. So yeah, so anyway, so back to the question in general, is, you know, you want to find the people that are going to be most productive in your area. And, you know, there’s a baseline level of skill, of course, but the cultural fit is just as important.
Tobias Kaatz: Okay. So that means that if a company says that they are hiring only A players or the so-called top 10-percent, then this does not have to mean that a second company is actually talking about the same, exactly the same people when they want to hire A players. So it depends on whether they fit to the culture and have the right and needed expertise, and so it’s not that we leave 90-percent of the real population behind.
Randy Shoup: Yeah. I think that – well, I think partly that’s absolutely true, where one hopes that the top 10-percent of people that we would want to hire of the overall pool, the top 10-percent of those as defined by KIXEYE is somewhat non-overlapping with the top 10-percent who would want to – you know, who SAP would be looking for or, you know, Google or eBay. I mean there is some overlap, there’s actually quite a bit of it. And so the way I would say that back is we’re looking for people with the best skill sets we can who also fit into our team culture.
Tobias Kaatz: Yeah. Okay.
Randy Shoup: Right? And so, you know, I will say that – well, let’s say it this way, that a C-player, to look on the other end, there’s probably a near-universal evaluation skills-wise of the C player. And, you know, people can get better of course.
Tobias Kaatz: Yeah.
Randy Shoup: But yeah, the very specific, you know, once you’ve filtered out for being top of your game in the skills, you know, again, we’re coming back to the football analogy, right? I mean the goalie or the striker needs to have a certain – not even baseline, a certain extreme level of excellence to be able to play at the World Cup level, and then from there there’s a bit of a team – you know, the team fit is the extra added one on top of that, if that makes any sense.
Tobias Kaatz: Yes, it does. It does. One actually aspect you are pointing out in your talks which I really like is that C players hire C players, or maybe B players hire C players more often than A players, ‘cause there’s this competition going on and they don’t really want to be overruled by someone who is actually more skilled, which I really like. And I think maybe the term to hire A players is just to see in a perspective of who is hiring whom and how this affects the whole team and the team effort. Does it make sense?
Randy Shoup: It makes a lot of sense, yeah. And I’m glad you brought up that, because that’s the other aspect of A players, is that you want them obviously to be – you know, again, you’re trying to maximize the productivity of the team that you have, but you also want that team to be a sustainable kind of organism, right? And the best way to get an A player is to have a group of A players already. You know, because first of all that’s very attractive for the candidate, wow, these guys are really amazing. I want to work with them. I affirmatively want to work with those people. So that’s the first step.
The flip side of that is that the A players that you have are not afraid of bringing on – in fact, they want to work with the best. You know, they’re confident in their own skills, they want to work with other excellent people. And so they affirm – you know, the people that are currently on your team are affirmatively looking for people that are the best, because they can learn from them and so on. A lot of being an A player frankly is an attitude about learning, you know, about always growing; that’s how you get there.
But yeah, but sadly it’s true that – so A players tend to hire other A players, but yeah, like you brought up, B players tend to hire C players, and the intuition there is that there is a – whether conscious or unconscious, a sort of lack of confidence or, you know, a fear, underlying fear about being sort of overshadowed. And so you’ll find people that either sort of B player level, don’t want to hire an A player because, gosh, they’re worried for their own position or something like that, and even, sadly, somebody who’s equal is a potential threat.
Tobias Kaatz: Yes.
Randy Shoup: And so that’s where you get the B players hire C players. And you do see that sadly in a lot of, you know, I’ll say – I mean I know only in the U.S., but you know, sort of traditional, extremely large organizations often have that problem. You know, they’ll end up hiring the sort of level of hiring kind of tends to degrade over time.
Tobias Kaatz: Yes.
Randy Shoup: And that’s very unmotivating for the few A players that are left, you know, and they end up leaving, and it makes it really difficult to kind of turn that thing around, you know, and go back in the other direction.
Tobias Kaatz: Yes, definitely. When I watched your talks on the Internet it seemed that you admired the Google way of hiring. Can you tell how it is different to the inverted commerce normal way and why you prefer it over other methods?
Randy Shoup: Absolutely. Yeah, so let me first say the goal. And people can of course Google to learn about this, so I’m not saying anything that’s, you know, secret and internal to Google, it’s sort of well-expressed publicly. So yeah, just briefly, though, let’s start with Google’s goal. Google’s goal is to hire A players, you know, referring back to the earlier thread of our conversation. And Google’s goal is to hire only A players. So imagine the hiring process as a sort of pipeline and out the other end they want only A players to be, you know, absorbed into Google.
So Google is willing to have say false negatives, but never false positives, and I’ll explain what I mean by that. A false negative is where they – so I went to go there let’s say and they say, “Sorry, Randy, Google’s not a good fit for you.” And they’re okay with making a mistake, like, “Oh, actually Randy should’ve come,” you know, “but we’re okay with making a mistake and letting him go potentially.” But they would never want to have a false positive, which is they would hire Randy but Randy actually wasn’t a good fit at Google.
So everything is organized around – everything about the process is organized around that goal. And so to start from the candidate’s perspective, there are – the candidates go through a very deep and detailed set of – for technical positions, technical interviews. And I’ll just say for myself that, you know, I studied for weeks with an algorithms textbook before I did my Google interviews, and I’ve been doing this for a long time. And that was well worth it, because the technical interviews are very deep and very challenging. That’s good for two reasons. One, it’s a good filtering mechanism. But it’s also a good demonstration or signaling of how serious Google is about engineering. So giving a tough interview to a candidate is a good thing from the perspective of filtering to see where the candidate’s sort of strengths and weaknesses are. That’s one value. But the other value, which I think people underappreciate is that you’re signaling to the candidate, “Hey, we’re serious about this position,” right? If you come here we’re going to – this is a great place to work, exactly because we’re so – we put so much effort into the interview and it’s so difficult, right? You know, people like challenging things, that’s why people like to play games like the games that we make at KIXEYE. You know, people love challenges, right? So Google’s not intending to make it a game, I’m not trying to trivialize that, but there are two halves to this thing and I think the second half isn’t as appreciated.
Okay, so interview process very difficult. And then multiple rounds of interviews typically, as is standard at lots of companies. But Google has learned over time how to do this and is constantly refining the process. so one thing that’s different, one of several things that’s different about as you say normal interviewing or, you know, at other places is it’s not the hiring manager for the position who makes the choice about whether, you know, let’s say Randy would come to Google. There’s actually an objective evaluation based on those interviews. So all the interview feedback that the interviewers have taken goes to a hiring committee, which is not made up of anybody who interviewed the candidate or any of the hiring managers. And that hiring committee sees – there are many hiring committees, but let’s imagine there were just one, conceptually, they’re seeing sort of all of the candidate flow, right?
And so they’re in a very good position and they’re all senior – from technical one, senior engineers at Google who have been around for a long time and really know what it means to work at Google, what the Google culture is like and so on. And so they’re looking for all those, in a sort of somewhat objective way, looking for people that would be a good fit at Google. And they make the determination about whether Randy should or should not be given an offer.
Then – then, totally separate, as a separate concept, you know, once they’ve decided yes, we’d like to make an offer to Randy or Tobias, then there’s a separate concept about, okay, where should we place this person in Google. You see what I mean? And so then interviews, if you like, with hiring managers and particular groups come after that. But those interviews tend to be less about evaluating the candidate’s skills and more about evaluating cultural fit in the team. You know, so they tend to be more – that final thing tends to be more a set of casual conversations about team fit as distinct from the more rigorous skills fit, if you see what I mean.
Tobias Kaatz: Yeah, I do.
Randy Shoup: And I really like that differentiation. You know, in some sense it works well for Google because there’s a huge amount of candidate flow. So the fact that there is a lot of filtering along the way is okay because there’s enough input into the pipe, you know, in the beginning. But the end result is that, you know, a lot, in my limited experience, you know, the people that have come out the other end of that funnel are extremely skilled, extremely motivated and really good cultural fit. So on average, you know, there’s a high – I think this is very anecdotal from my perspective, but this process has a higher success rate than other processes, you know, it’s rigorous and objective going along. And it also, again, like I say, demonstrates the seriousness to the candidate of, you know, demonstrates this is a really, really great place to work.
Tobias Kaatz: Yes. I’d like to discuss two aspects of this way of hiring. And I know it’s not only Google who is doing it this way, but other companies learn from them. The first one is that it seems like sometimes, or maybe more often Google is only rejecting people because they were applying for the first time. And the second one is it looks like the tests are only focused around data structures and algorithms. Isn’t that a bit narrow? And do you think that other valuable people are left behind and maybe even the majority of the applicants are left behind?
Randy Shoup: Oh yeah, those are great questions. Yeah, so the first one was about the false negatives. And so let me try to describe that again. So again, the goal of the hiring process is to make sure that only sort of A players, only good skills and cultural fit candidates end up being offered a job. And it’s not that the hiring process – it’s not that there’s any advantage to rejecting people; it’s just that Google understands very openly and explicitly we’re going to make mistakes. We know, you know, this is when I worked there, so we, Google, understand that we will make mistakes in this process and we will reject people that we really should have hired. And that’s totally known.
So that hiring committee that I mentioned, as part of their sort of evaluation of the candidate, so they can say “hire’ and then they can say “no hire,” but then when would that person be asked to reapply, right? And so, you know what, and so the conversations that I overheard in a bunch of these committees went something like this, “You know, she did okay in the interviews, she messed up a few things, so she’s not going to be a hire right now. But you know what, I think, you know, she showed a lot of promise and now she knows how the hiring process goes, so let’s ask her to reapply in six months, and then hopefully she’ll reapply and go through the second time.”
But I just want to be clear that it’s about everybody that’s part of the process recognizing that the process is imperfect and that it will reject people that really should be there. And so this idea of a rejection from Google is not a permanent, you know, never, ever talk to Google ever again. And I hope candidates who have been rejected don’t feel that way. You know, they should – they’re actually encouraged to reapply later on and if they, you know, still really want to work there, and then the second time they may go through.
And that’s actually extremely – I mean there are people at Google, several of them you can Google about them, you know, written blogs about how to get hired at Google; Steve Yegge is a good example. He didn’t get in in the first time. You know, and he writes about that very explicitly. He went through the first set of interviews, he was rejected, he said, “Wow, this was really hard” and he did a bunch of studying. And so you can read his whole blog; it’s really great. I read it before I interviewed. You know, read that whole description of his experience. He said, “You know what, I really want to work here” so he studied really hard and he reapplied and then he got in the second time.
So again, the rejection is not something that the rejection is motivating for people or the rejection is somehow a good thing; it’s just – I just want to be clear that it’s the Google process being open and recognizing – open and honest with itself and recognizing that it makes mistakes.
Tobias Kaatz: Yes.
Randy Shoup: Sorry, the second part of the question was – ah, yes, does the Google hiring process select for some particular subset of potential candidates and leave off another set of people that really should be there? And the specific example you gave, and it’s a good one, is hey, you’re basically testing for peoples’; knowledge of algorithms and data structures from their first couple of years of university, if you studied computer science.
And again, I’ll start with the open recognition that people understand in this process that the process makes mistakes. But again, coming back to the A players, you’re trying to find, you know, and again we’ll maybe use the football analogy, everybody’s got to be able to dribble the ball and pass accurately, and so a baseline knowledge of algorithms and data structures is something that Google has said, “Look, this is a baseline set of skills we want everybody to have.”
But the nice thing, frankly, as a candidate – if you’re not – if you don’t feel – if you feel a little bit rusty in those areas, you know, you can study that stuff. And that’s encouraged. It’s not rocket science, but it – I mean I’ll say for myself, you know, I’ve been doing this for a long time, and when I applied I did study that. You know, I got an algorithms textbook that was recommended and I read it cover to cover and I thought carefully about it and I did a bunch of, you know, program exercises myself, and it really helped. And obviously, you know, the implicit part of the question is somebody, you know, walking through the halls of Google and constantly testing you on, you know, what’s the complexity of this particular algorithm and this, you know, what’s the space complexity or time complexity of x or y or z. Like no, that’s not happening, you know, you’re not getting shoved up against the wall when you’re walking around as a Google employee, but it’s a baseline set of skills that is at least objectively able to be evaluated. Do you know what I mean?
I mean that’s the other aspect of it, is that, look, you know, Randy either knows or doesn’t know the appropriate usage of a hash table or a linked list or different flavors of red-black trees or so on. You know what I mean? Like that’s objective. And I don’t want to leave people with the impression that that’s the only criterion that you’re being evaluated on, but it’s a baseline, right?
Tobias Kaatz: Right. Just to make sure that we are not only talking about Google, I’d like to ask you if you would want to apply those described procedures to your hiring process at KIXEYE or if you would want to change something or do something different ‘cause it fits better to KIXEYE than the invert commerce Google way of hiring.
Randy Shoup: That’s an excellent question. Sure. So we have not adopted wholesale the Google hiring process, but we’ve started in the last year to add more rigor to the process. so one way that we do that is we’ve always had, like I mentioned, sort of coding tests, take-home coding tests for people in particular areas. And we’ve started to do more of those because we’ve found those to be hugely valuable. For the same reason, right? Because it’s – A, it’s sort of a somewhat objective way of giving people an opportunity to demonstrate their skills, and at the same time it’s a deep – it’s a good way of in some sense having an icebreaker or starting a conversation, you know, “Hey, I noticed that in y our coding test, you know, you approached it in this way and let’s talk about that and what were the trade-offs that you thought” – you know what I mean?
Tobias Kaatz: Yeah.
Randy Shoup: It’s a way of starting those engineering interviews farther ahead in some sense in the conversation than you otherwise would’ve been able to be. Does that make sense?
Tobias Kaatz: Definitely it does. And if it is only for this reason then it is really great.
Randy Shoup: Yes, and I guess the other aspect is being more explicit in the downstream process. so we don’t have a separate hiring committee, you know, we’re sort of not at that size or shape yet, but we do – we have injected more sort of rigor downstream in the process and that’s helpful.
Tobias Kaatz: Okay. What fraction of your time and/or your team’s time do you spend on recruiting and hiring right now?
Randy Shoup: Oh, that’s a good one. we have a number – I mean we’re a 500-person company and we have 6 full-time recruiters, so I’ll tell you that it’s a very important, you know, effort that we put lots of effort on, you know, from the whole company. For me and my team personally, yeah, we probably – we order 10, 15-percent, 20-percent sometimes.
Tobias Kaatz: Okay.
Randy Shoup: So a decent chunk of time. And it ebbs and flows, right? But we spend a lot of time and effort evaluating candidates and making sure they’re good fits, and then also each of us kind of, back to our earlier conversation, leveraging our own networks when we’re looking for somebody, leveraging our own networks to find people. ‘Cause again, like I said before, the very, very best way – I mean we talked a lot about a detailed interview process, but the very best way to find if somebody is a good fit is to know them already. Right? You know, ‘cause there’s no – there is, just to be super-honest and to reiterate, there is, you know, let me make a little bit of a joke, the standard hiring process is a little bit like you talk to somebody for an hour and then get married. Like that’s crazy.
Tobias Kaatz: Yes, it is.
Randy Shoup: That’s totally insane. And so the only way – and this – well, the by far better way and the far more productive way for everybody involved is to have known somebody ahead – like to take the analogy in a way that really isn’t very appropriate, somebody that you work with has already dated them for multiple years, you know, already knows them really well and knows that they’re going to be a fit. I guess that analogy doesn’t work well, but the fact, you know, again, we’ve had the best success, both in terms of interest of candidates coming to KIXEYE and then also for success for people once they’re here, but best success from referrals of people that have worked with, you know, the candidate for a long time before. And there is no substitute for that, right? There’s nothing we can do in a handful of hours, no matter how many tests, no matter how objective we are, no matter how detailed or fast we talk, you know, there’s no way we can substitute for, “Oh yes, I worked with this person for three years at this company and here’s why she’s wonderful and here were her skills – you know, here are where her strengths and weaknesses and so on.”
Tobias Kaatz: Well, it’s a matter of time in the end, and you don’t have it.
Randy Shoup: Exactly. Exactly. And yeah.
Tobias Kaatz: I’d like to ask you a question which is particularly important for me as a German person, and maybe for all our listeners who are living in Asia and Europe and not in the States; do you think that the described techniques are in contrary to cultures in other nations than the U.S.? For example, if I, as a German person, just because I applied for the first time at your company, I would have a really hard time reapplying after six months; I think I wouldn’t simply do it. Do you think that this notion is wrong and do you think that there are some general aspects which can be applied on every country when you want to hire a person of that nation, or do you think that you have to adjust your techniques for every person in every country?
Randy Shoup: That’s a great question and I’ll just say to start that my experience is limited to hiring in America, and particularly hiring in Silicon Valley. So I am very open to the idea that not all of these practices are going to translate even across the United States, let alone across into Europe and Asia. So to your point I think I would be surprised if there weren’t differences globally, right? I would be very surprised.
Now that said, I think I also agree with the implicit last part of your question, which is do I think that there are some universals. Absolutely I do, right? And looking for – I mean and sort of looking for a team or cultural fit, looking for people that are motivated and have good communication and good collaboration, my suspicion is that those are universal qualities, you know, that make people successful. But the details of how the process works, I think I would be surprised if we would not want to specialize, if you like, those processes in, like you say, in Germany or in China or Japan or some other place. like it has to be true that they should be different country by country.
But I’ll say, you know, I’ll just be open that, you know, my experience is, well, is hiring. I mean I’ve worked at companies which were global and helped to hire people globally, but yeah, like I say, I’d be surprised if there weren’t individual cultural differences, but I’d also be surprised if the ideal process for finding someone in Germany or in China or Japan, for example, to join your company would be entirely different from an American. You know what I mean? Like there’s clearly some overlap, but there’s clearly not 100-percent overlap, if that makes any sense.
Tobias Kaatz: Yes, I’m with you in this case definitely. One aspect of your talks that I really do like is that you’re talking a lot about constant rethinking of your strategies and you really promote this idea. is this applicable to hiring as well, or the way you’re hiring?
Randy Shoup: Absolutely. So I think we should always as people and as organizations, we should always be thinking about how can we do better, because we’re all on a journey to improve ourselves, whether it be ourselves or people or for organizations or whatever. And to start with, the baseline that you need for that is to be open and honest with yourself about what the tradeoffs are you’re making. You know, what are my goals here and then what are the tradeoffs? And yeah, I mean so I think organizations should always be looking to improve themselves, and yeah, that’s applicable to anything.
So particularly for the hiring process, you know, I’m kind of coming back to the Google analogy, Google does a great job of collecting data about things, you know, collecting data about the hiring process that they’ve had for 15 years. And they’ve been constantly refining it. And so what I’ve described was my experience as of sort of, you know, 2013, the hiring process at Google. That evolved over time and it’s going to continue to evolve, and I think that should be true at every company. You know, companies change their goals, you know, their overall goals company-wide and then their specific goals for individual organizations, and then you’d want to be changing your – certainly the things you’re looking for when you’re hiring, but also maybe the process itself of hiring as you go along. Right?
I mean I guess the way to say it is for me, you know, it would be a bit silly to think that the hiring process that we have at any company right now is the perfect process forever. Right?
Tobias Kaatz: Yeah. That sounds reasonable and a good thing. ‘Cause I think sometimes, especially when it comes down to hiring, there is this notion of, “okay, we’ve got it right now” and this is global and it’s good to hear that that shouldn’t be the case. Just maybe if you know, how do you measure success in this case? Do you know how Google is doing it or how are you doing this?
Randy Shoup: Sure. Yeah, I’ll say how we do it, which is we measure – so as with any company, you know, we evaluate individual people regularly. You know, that’s just a normal process of giving people feedback on how well they’re doing and how they can improve. So that’s a good indicator of whether somebody is a good fit, you know, that we just sort of are evaluating people regularly. And then – so that reflects on the hiring process, obviously.
Then of course, you know, retention of people – people wanting to – that’s a good indicator as well. There’s another indicator of success – so the hiring process is a funnel, right? And then so you can evaluate different, if you like, stages of that funnel over time, and that’s helpful to see if improvements or changes that you’ve made in the process are more or less effective. Do you know what I mean?
Tobias Kaatz: Yes, I do.
Randy Shoup: So what sort of percentage of people have passed particular phases of the funnel and, you know, is more better, is less better, but noticing those changes are a good metric, if you like, for how to evaluate it.
Yeah, Google does a good job of – Google does the same thing. So, you know, they do – as any company, they do evaluations of individual people on a regular basis, individual employees. So that’s a good indicator. And then also retention and a kind of funnel analysis of the process. Right?
Tobias Kaatz: Okay. Good. I’m afraid we need to leave it with that. We actually planned to talk a lot more about company culture and competition and things like that, and I hope that we could set a date where we can talk about the second half of our schedule.
Randy Shoup: Absolutely. Sure. No, I’d love to do that, yeah.
Tobias Kaatz: Just one general question. You’re talking about hiring but actually doing something totally different right now. By the time we are speaking you’re in Germany. What are you doing if you’re not talking about hiring?
Randy Shoup: When I’m not giving talks about hiring?
Tobias Kaatz: Yeah.
Randy Shoup: Well, the joke is I’m actually hiring, so that’s one part of it is actually doing the hiring process. but, you know, but I’m the CTO of KIXEYE and my responsibility is to run the group. So we have many different games and my responsibility is to run the – all the shared engineering that is used across all the games. And so my day job is to run that organization and that’s sort of a technical leadership and also organizational leadership. So yeah, so I’ll be traveling back in a few hours to – well, actually over an extended day back to San Francisco and bright and early I’ll be back in the office and doing my day job.
Tobias Kaatz: You were saying that you’re hiring. Is KIXEYE actually hiring right now? Do you want to promote?
Randy Shoup: Oh absolutely. Yes, thank you. Sure. No KIXEYE is always hiring, and now as much as any time. So we have about 550 people worldwide, and sort of 450 of those are in our main office in San Francisco. So we’re hiring there. We also have offices – we’re hiring in all these places. We have offices in Victoria, British Columbia in Canada. We have an office in Brisbane, Australia, where we build one of our games. We have an office in Portland, where we do our customer support, and then we have a small office in Seattle and a small office in Amsterdam. So in all those places we’re looking for talented people and, you know, all up and down the stacks. So we do real-time strategy games, so we’re looking for people on the front end to do user interface and graphics and sort of the simulation, the game play side of things, which is extremely important. And then we’re looking for very strong server side engineers as well to build the server side of our games. And then, gosh, people to do analytics and people to build the infrastructure for analytics, quality and automation people. You know, I’d strongly suggest if anybody is at all interested to go to www.kixeye.com/jobs and you’ll see all the things that we’re looking for right now.
Tobias Kaatz: Great. And if someone wants to actually meet you or see you talk at a conference, where will you be in the future times?
Randy Shoup: Let’s see, later in the fall I’ll be speaking at the Go To conferences in Copenhagen and Aarhus in the Netherlands. I’m speaking at Build Stuff, which is in Lithuania, in Vilnius in November. And there are still a few other potential ones that we’re working through.
Tobias Kaatz: Very impressive. I can only encourage you listeners to go to the talks or watch the videos that we have linked in the show notes; I learned a lot from them.
So, Randy, thank you very much for being on the show. As we said, there will be a second part later this year, but for now thank you very much and have a good day. Bye.
Randy Shoup: Great. Thank you, Tobias. This was a lot of fun.
Tobias Kaatz: So this is the end of our episode with Randy Shoup. We want to encourage you to go to iTunes and write a review of this show. And if you have something to add or some comments then feel free to go to our website, SE-Radio.net and leave a comment at this episode. This is Tobias Kaatz with Software Engineering Radio. Thank you for listening.
Announcer: Thanks for listening to SE Radio, an educational program brought to you by IEEE Software magazine. For more information about the podcast, including other episodes, visit our website at SE-Radio.net. To support us you can advertise SE-Radio by clicking the Digg, Reddit, Delicious, or Slouch _____ buttons on the side, or by talking about us on Facebook, Twitter, or your own blog. If you have feedback specific to an episode please use the commenting feature on the site so that other listeners can respond to your comments as well.
This and all other episodes of SE Radio is licensed under the Creative Commons 2.5 license. Please see the website for details. Thanks again for your support.
[End of Audio]