How to Screen for the Perfect Software Engineer (a.k.a. SAMs)
April 15, 2015
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't find good engineers" or “the kind of candidates we want are not applying for our jobs.”
Managers, particularly engineering managers, are 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. For me as a recruiter, this means I'm sent on many wild goose chases.
SAMs: The ultimate software engineers
After working at a number of different technology companies and grappling with the problem of trying to recruit the elusive “perfect” engineer, I was determined to solve this specific recruiting challenge. First off, I needed to identify the attributes that a good software engineer must possess - specifically what my team was looking for in terms of technology.
Ultimately, I discovered 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: a software engineer named 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. He told 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."
How to pick SAMs out from the crowd
“S” is for Smart
SAM is an acronym for “Smart,” “Articulate,” and “Measurable.” SAMs are smart and understand the fundamentals of computer science. They may hold an undergraduate degree in the area of computer science, mathematics and/or engineering and they 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 they are engaging and easy to work with. Some of the other vital personality traits that SAMs must possess are curiosity coupled with a strong business acumen.
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 they are connecting the dots. With my next question, I ask them to explain how they built the platform. A good SAM will be accurate in their description - the key is when you ask SAM about “the team” and whether or not they mention collaborating with others. If they don’t mention anyone else with whom they worked, I inquire as to why and how this happened.
Finally, I ask about what new technologies they are currently 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.
“A” is for articulate
Next, a SAM needs to be articulate. they must be a great communicator, both verbally and in written format. They want to ensure that everyone is on the same page, so they document the process of coding and testing.
SAMs aren’t just about talking and writing code; they can cut through ambiguity when creating and designing new platforms.
Another of the most important attributes that SAMs possess is in the articulation department; they are influencers. SAMs can influence others with persuasion and good reasoning. They don't shut 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 this question because they can easily articulate the reasoning behind their decision.
Please keep in mind that not all SAMs are great communicators. Yes, great SAMs seem to effortlessly communicate 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.
“M” is for Measurable
Finally, SAMs are measurable. They 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. They want to compare their new design platforms to old norms and focus on addressing the problems 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.
“s” is also for solutions
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. SAMs will quickly move from transactions to dollars and savings.
SAMs function as developers, QA, and even project managers. They do not just take orders from product managers; they build the solution and sell it to the business they support. 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.
To receive blog posts like this one straight in your inbox, subscribe to the blog newsletter.
This was orginally published on Stephen Thompson's LinkedIn.com profile.