For obvious reasons, the success of a team is greater than any one individual. Building the right team involves finding the right people technically and culturally. Experienced engineers are hard to find even in the New York City Metropolitan area, and even experienced engineers may not be the right fit culturally for your company.
Defining and seeking out those with Core Values
What is the right fit? Every company should understand what their core values are. These are behaviors that every person in your company requires to conduct business and should be similar to the values exhibited by your customers. Any new hire should loosely exhibit these values regardless of whether they’re starting fresh out of college or they’ve been writing compilers for 30 years.
Slow and Steady Wins the Race
Building the right team takes time. In a perfect world, your experienced engineers have cut their teeth working for you. Ideally, it is great to grow engineers from interns all the way to leads. This is very much a winning strategy but requires a lot of investment into the continued career growth of employees and of course time to cultivate the talent.
Local colleges and universities can be a great source of talent to find the next leaders of the company. Most colleges will host Job Fairs for employers to interface directly with the students. This allows resume gathering as well as prescreening to occur with many students in a short period of time. The short, 10-minute discussion with a student about their resume at the very least allows you to check off boxes for communication, passion, and understanding of basic concepts. Often if a student can get you to understand the project they’re working on it means they themselves have a good grasp on the technology being used and its potential application to solve real world issues. A great candidate will be animated and talk your ear off for several minutes while a poor candidate will require you to do a lot of the talking, trying to pull information from them.
Many universities have cloud-based job boards that employers can utilize to find talented students. Each posting can potentially reach thousands of students and many of these bards allow resumes to be sent directly to your email. A good job board will allow you to specify application requirements like availability, graduation date, and specific majors or areas of study.
University staff can also be a valuable resource. We’ve been able to team up with some of the University staff members directly to find their brightest students. This allows some prescreening to occur before we bring the student in for an interview and ensures only the brightest candidates find their way into an interview. Form some strong relations with local universities through participation and collaboration. This involves participating in the aforementioned job fairs as well as hosting, sponsoring, and attending networking events. And, of course, consider hiring interns.
Once you’ve exhausted your networks, all is not lost, sometimes the right people are on the market. Staffing agencies can be a great resource for finding experienced developers in a pinch. Spending time with your recruiters and forging a strong relationship will ultimately lead to higher quality candidates that are closer to the mark. If your recruiters understand your culture, core values, and technical needs they’ll be better equipped to find the right people.
So you’ve got a stack of resumes, plenty of coffee, and only one position available. Before you commit to interviewing an experienced candidate on-site, setup a phone call to do a first pass sniff test. This phone call should be a one on one 15-30 minutes call to deduce whether the candidate should be brought on-site. This allows for minimal time spent on candidates who do not fit the bill. Questions should be focused on explaining the resume and two or three technical questions to vet job knowledge. Your takeaways from the screening will be the ability to communicate clearly and his or her true experience on the various projects. It is important to deduce what their actual job tasks and contributions were. In large teams, people can be lost in the weeds, and have minimal actual impact.
Interviews from hell have become very trendy in the technology sector. It’s become somewhat of a race to have the hardest interview questions. Bottom line is you’ll end up scaring a lot of quality candidates away. Stay away from the logic questions like “how many gallons of water does it take to fill up a blue water tank with no markers and it’s raining on a Tuesday.” It is far more important to ask practical questions related to everyday tasks, than it is to try and stump a candidate for fun.
Before getting started with the interview, introduce the candidate to the members of the team and asking how the trip was or engage in some small talk. Basically, this helps put the candidate at ease so that you can see their true capability rather than the nervous shell of a person they might turn into during an interview.
To ease the candidate into the interview, the resume is a good place to start. This allows you to rehash some of the topics you touched upon in the phone screening in greater detail, and for the benefit of anyone else in the room. Discussing their projects and more specific tasks on a project can give you an idea of what they’ve done and what kind of work they’re comfortable with. This can often lead to behavioral and career questions.
Behavioral and Career Questions
Behavioral questions should be tailored to find out whether this person would fit with your team and can be as simple as whether or not they prefer working in large or small teams. More interesting questions could revolve around dealing with difficult situations or people in the past and how those problems were solved. Career goals questions can give you valued insight into whether or not the candidate will be happy with the current job in the long run. Obviously being employed is a priority for candidates but as employers, we need to be sure that our employees are somewhat passionate about the work they’re given. It is not uncommon to turn down a capable candidate because you don’t think they’ll be satisfied with the work in the long run.
Start off with some easy word questions about the skill that you’re hiring them to perform. These should ease the candidate into thought around basic concepts and may be as simple as topics learned in college, but important enough that every employee uses these concepts daily. Good candidates will blaze through these questions because they understand the basics and have used them over and over again. If the candidate is applying for a senior level position and they can’t answer the easy questions, it’s probably time to end the interview. Obviously with interns, there should be some leniency here to account for the nerves of what may be their first interview. Follow the easy questions with some hard questions that require detailed knowledge of the systems you’re hiring for. It may not be necessary for experienced candidates to answer every hard question correctly as long as you can deduce that they have some understanding around the topic being discussed.
White Board Programming Questions
You should put the candidate at ease by letting them know that you understand that it is difficult to code outside of an IDE without any compiler warnings. The important piece here is seeing the thought process. Some candidates will be afraid to admit defeat even though you’ve informed them that you’re just looking to see how they think. These candidates may be likely to spin their wheels on any projects you get them without asking for help. Strong candidates will be able to see pitfalls in the logic and make adjustments as they go and may even ask anyone if they know of the native call they want to use. In some instances, I’ve even been more satisfied with pseudo code rather than a jumbled mess of spaghetti code. Again the important thing here is the thought process not whether they’ve memorized some libraries.
After the interview, have a quick pow-wow to discuss the candidate. If the candidate isn’t a universal yes, then this is a no-hire. You absolutely do not want to have a situation where a person who did not wish to hire someone has to work with them. If this person is a no-hire for this position at your company, are there other positions for which this person is a hire. You should always follow up the interview with some feedback to the candidate, whether you wish to hire them or not. With younger candidates for entry level or intern positions, you can take this chance to tell them specifically about technologies and knowledge you’re looking for. With any candidate, it is imperative that you leave a good and lasting impression on them.
Building the right Software team is hard but the payoffs are huge. Having the right team that can work, grow, and have fun together will ensure that as the technology and demand for software grows, your team is ready to provide the highest quality solutions.
About the author: Anthony Gray is a lead software engineer for Intelligent Product Solutions (IPS), and manages software development projects. IPS is a product design and development firm with an expertise in Internet of Things (IoT), mobile, and wearable technologies. Its clients include Motorola, L3 Communications, PepsiCo, Zebra Technologies, and Physio-Control. Anthony received a Bachelor of Science in Computer Science from Stony Brook University. Prior to that, he was a Combat Engineer for the U.S. Army.
Filed Under: Rapid prototyping