Everyone is looking for the perfect software engineer. I hear the following comments all the time from VCs to hiring managers at Fortune 100 companies: “we can not find good engineers” or “the kind of candidates we want are not applying for our jobs.” Managers and engineering managers, in particular, are so picky. They want everything in one person: a strong relational background, strong experience in distributed systems, creative UI design principles and a solid foundation in computer science. My managers love to tell me how their candidates need to have at least five years’ experience in the following: Java, Scala, Hadoop, Objective C, Go, and Hack. They also need to be familiar with building highly scalable systems with low latency. So picky-yes, clear-kind of. And possible – let’s see.
So my managers inevitably send me on a wild goose chase and I agree to take the journey to a new Disneyland of high expectations where dreams come true. I know what you’re saying, “Stop complaining, Stephen.”
After working at a number of different technology companies and grappling with the problem of trying to recruit the elusive “perfect” engineer, I wanted to solve this specific recruiting challenge. First of all, I needed to identify the attributes that a good software engineer must possess. Now, if I spoke to one of my managers, he/she would say that an engineer needs to understand design and how to build at scale. However, that revealed nothing to me. I needed more information to attract and target the right candidates. When I looked further into the issue I found it was not very clear, but rather ambiguous, to say the least.
Therefore, I was going to need to lock down much more specifically what my team was looking in terms of technology.
So, I started to learn more about the process of software development, “object-oriented” programming, and open source technologies. This research was helpful, but I was still off the mark when it came to finding the right engineer. At first, the engineers that I referred to my managers were integrating packaged applications with homegrown software. Next, I sent them engineers that were good at building enterprise applications but in many cases required the help of a veritable army of engineers and consultants. Ultimately, I needed an engineer who could work the entire technology stack with little to no direction. I stumbled around for quite some time until I found the solution to my recruiting problem in “Sam.”
Sam is now a manager of engineering at Apple, but when I first met him he was working at a small startup looking to develop software and further his career. Once I got on the phone with Sam, I realized that I had finally found what I’d been searching for all this time. Sam started to tell me what he was looking for and it was exactly what I needed to hear from an engineer. Sam was perfect. After speaking with him, I devised a process to target and analyze future “SAMS.” Here are some of the strategies I have found useful in identifying and hiring “SAMS.”
SAM is an acronym for “Smart,” “Articulate,” and “Measurable.” Let’s start with the first S, smart. SAMs are smart and understand the fundamentals of computer science. SAMs may hold an undergraduate degree in the area of computer science, mathematics and/or engineering. SAMs are inquisitive and interested in using new technologies to solve real problems. Generally, SAMs are not rigid; they are inherently flexible and able to see things from multiple perspectives. It also goes without saying that SAMs are also engaging and easy to work with. However, some of the other vital personality traits that SAMs must possess are curiosity coupled with a strong business acumen.
Here are some of the questions I ask to gauge whether or not an applicant is a potential SAM. I begin with the basics and ask the candidate to tell me about their current company. In doing so, I look for evidence of business acumen to see if she is connecting the dots. With my next question, I ask her to explain how she built the platform.
A good SAM will be accurate in their description about the building of the platform. The key is when you ask SAM about “the team” whether or not he mentions collaborating with others. If he does not mention anyone else with whom he worked, I inquire as to why and how this happened. Finally, I ask about what new technologies he currently is interested in. A good SAM will tell you about what he is using and carefully explain why he is looking for a new language or framework. For example, SAM will tell you he is using Python because the libraries are powerful for building strong relevance algorithms. But, most importantly, SAMs give credit to others with whom they have worked and they express a desire for working with other top people. They innately respect those with whom they have collaborated and are careful not to take credit for other’s achievements. That is why SAMs love “Open Source Projects” because such ventures necessitate that they learn and develop software projects in cooperation with other SAMs.
Next, a SAM needs to be articulate. SAM must be a great communicator both verbally and in written format. SAM wants to ensure that everyone is on the same page so SAM documents the process of coding and testing. SAM is not just about talking and writing code; SAM can cut through ambiguity when creating and designing new platforms. However, another of the most important attributes that SAM possesses is in the articulation department; She is an influencer. SAMs can influence others with persuasion and good reasoning. SAMs don’t shout down alternative ideas; instead, they listen collaboratively to get their ideas and messages across to other team members, both engineers and business leaders. For example, if SAM tells me about using Scala, I ask, “why did you create the platform in Scala and not Java?” SAMs crush the questions because they can easily articulate the reasoning behind their decision process.
Please keep in mind that NOT all SAMs are great communicators. Yes, great SAMs seem to effortlessly communicate around concepts and ideas. However, you must remember that SAM is a great problem solver with technology and he may need YOU to ask and seek the right questions to elicit the right response. It may take great engineers time to become SAMs and your goal is to ask the right questions to determine if your candidate possesses that potential.
Finally, SAMs are Measurable. SAMs are always looking at comparatives and trying to figure out the pros and cons involved in evaluating software development. SAMs are concerned about scale. They worry about how this product or platform will work with concurrent users. SAMs want to compare their new design platforms to old norms. They focus on addressing the problem and finding solutions. SAMs love to fail fast in order to quickly figure out if their idea or process will work. I always ask the following questions because SAMs will give you clear facts and figures. “Did you look at results step by step or just when the project was completed?” “What was the scale?” “How did you go from a load of one million users per month to ten million users per month?” A SAM will explain in detail how the solution they provided helped the business and/or protected it because, at their base, all SAMs want to solve problems.
So the last “s” in SAMs stands for solutions. A great SAM will propose a new platform or framework to address a business problem, but SAM also will ensure that the engineering solutions address the business issues. Sam will quickly move from transactions to dollars and savings. SAMs function as developers, QA, and even project managers. SAMs do not just take orders from product managers; she builds the solution and sells it to the business she supports. SAM is the new ultra engineer. Consequently, you don’t need an army of engineers with SAM to find solutions; instead, you may only need a handful of engineers to solve the thorniest of problems.
SAMs are great engineers and architects for your company. So, as a manager or recruiter, you will have to figure out the best way to have SAMs open up to you. But, once that box is open, you will be rewarded with great gifts. At the end of the day, you’ll know a SAM when you see one.
-Stephen Jon Thompson