Hiring a Good Programmer as a Non Techie Hiring Manager

by HSG on Jun 27, 2013 in Articles from Software Fans

It’s the eternal conundrum of a hiring manager – you have to hire for every single position in the company without any first-hand experience. How to do it? If you can have a trusted programmer sit in on the interview, that’s ideal, of course. But what if you’re hiring your first programmer? Or what if you’re hiring a freelancer? Or what if company policy dictates that you’re the only person allowed to do the interviewing? Well, in that case, you need some helpful advice and your innate bullshit detector. We questioned programmers and hiring managers and compiled a list of dos and don’ts. Here are some things to ask when interviewing programmers:

Past Experience

Ask the programmer about the biggest disaster of his career so far, and how he handled it. Did he come in at midnight to fix the code? Was he unaware of the problem until someone brought it up? Did someone else handle it?  According to our programmer sources, “Anyone worth their salt has caused a major meltdown. If they say they haven’t, they’re lying. Or very, very green.” Pushing a code with bugs in it isn’t necessarily bad. Not handling it well is bad.

As usual, your biggest asset is not knowing the field, it is knowing people. Asking about career disasters can be uncomfortable, but if the interviewee is experienced and honest then she won’t have a problem telling you about it, and you will get an idea of how she handles mishaps. Even if you don’t understand what the disaster was or how it was fixed, you should be able to tell how honest she’s being and how she handles being put on the spot.

 

Communication

Ask about the favorite project he’s worked on, or the biggest – but make sure he knows that you’re a non-techie before you ask. Prefacing the question with a disclaimer of non-techness warns the interviewee that he needs to explain the project in a language you will understand. If he can’t convey the gist of the project so that you understand, or does not realize that he should, then you might have a communication problem down the road. After all, in most situations, your programmers don’t work in a bubble. If they are not able to communicate difficult concepts in understandable language, will they be able to explain roadblocks in a project, or advise the company on the best way to execute an idea? This may not apply if you are hiring a freelancer to do some well-delineated work, but if you are hiring staff, or if you are hiring for an extended, nebulous project, the ability to turn something complicated into something simple is vital.

Teams vs. Individual

Does she like to work in teams, or on individual projects? Both answers are valid, but it will give you some insight into the person you’re thinking of hiring. What are your needs? If you’re hiring a freelancer to do a project for you, you are going to want someone comfortable working without the direction and support of a team.  And if you are hiring someone who will be working with an existing team of programmers, you will want someone who loves the collaborative atmosphere. Of course, many programmers are happy to do both, which is ideal.

Another question in this vein applies to the kind of work she prefers. Does she like to develop her own projects, or does she prefer to improve the existing code base? Once again, both answers are valid, and some programmers will be equally comfortable with both. This question merely helps you pin down the person you’re interviewing, so that you can decide if he has the skills you’re looking for.

Passion

            An important facet of any employee is passion. What does he do outside of work? For programmers, ask what side projects, if any, he is working on. Is he excited to talk about it? Does he offer up details? If he starts talking about his pet project and shares his frustrations, his successes, how long it is taking, how it came about, etc., then the project is clearly on his mind and he’s invested in it. Although it may seem contradictory to want your potential employee to be invested in an outside project, it shows dedication and enthusiasm that is vital in a programmer. You want someone who is self-motivated. Someone who works hard a personal project with no guarantee of money or success. Chances are, a person with that kind of passion will approach the company projects with the same level of involvement and commitment.

            One thing to keep your ears open for is something called GitHub. It’s a good sign if they have code on there, because it means they are involved in programming in their personal life and are interested in sharing with and learning from the community. You can also have someone look up your interviewee’s projects on GitHub to see how active he is and how many people have starred his projects. Of course, that course of action would be most informative with a programmer standing by to interpret.

Talent

            The final suggestion is an obvious one, but it bears mentioning: talent. For the most part, the only way you will be able to tell is by asking for references and contacting past employers. And don’t worry if they have a long list of former employers! In a programmer, that doesn’t necessarily indicate fickleness or inability to hold a job. Their skills are in high demand, so they are less hesitant about leaving jobs that are not paying enough or aren’t challenging enough. If their references say that they were conscientious and skilled, that is all that matters.

If you already have programmers in your company, ask for a sample of the interviewees work to pass on. It may not mean anything to you, but if you’re actually considering this person, it can’t hurt to get that extra confirmation from someone who knows.

Avoid

            Two major interviewing “nos” are puzzles and the five-year question. Everyone we spoke to (as well as Google’s hiring managers) says that puzzles only demonstrate how calm they are in interviews, or whether or not the programmer has encountered the puzzle before. It has no bearing on their work or talent.

And where do you see yourself in five years? Well, you should only ask that if you want an honest answer. As we mentioned previously, programmers are not desperate for work. It’s a labor market for them. Their skills are in high demand, they know it, and they will only stay if they are given proper incentive. So if you ask them where they see themselves in five years, the honest answer will probably be “Here, if you pay me enough and the work is enjoyable. If not, somewhere else.” After all, most programmers can get a bigger pay jump by finding a new job than by sticking with the company raises. However, most interviewees will not be so blunt (and rightly so). Instead of asking about her five-year plan, an alternative would be to ask why she left the previous company. Once again, only ask if you want an honest answer: financial reasons, lack of interesting projects, etc.

It’s a lot to wrap your head around, but hopefully some of these tips will come in handy during your next interview. And, as always, it’s all about your b.s. detector. You can use these questions as starting points, but your instincts will serve you best. Cockiness, bullshitting, evasiveness, and all the other warning signals apply just as much here as they do in any other interview.

Of course, tips directly from the front lines are always a great resource. How do you deal with interviewing someone in a technical field? Are there any great questions that we’ve missed? What about questions you wished you’d asked?

other blog entries

Forces That Will Impact The IT Service and Outsourcing Industry
Personal and Business Benefits of RSS Feeds
Is Your Computer Spying on You?
Facebook Releases C++Software Modules, May Lead To More Open Source
Will Microsoft Be Able To Slay Cloud Giants?
Seattle WA C#, C, C++, Java, Perl and Python Training
How Can Business Analysts Use Python?
Password Management Tools
The Value of Knowing Java
Toshiba Introduces New Solid-State Drives LineTo Market, Set For Release In August

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.

did you know? HSG is one of the foremost training companies in the United States

Information Technology Training that enables companies to build better applications and expertly manage the software development process.

Our courses focus on two areas: the most current and critical object-oriented and component based tools, technologies and languages; and the fundamentals of effective development methodology. Our programs are designed to deliver technology essentials while improving development staff productivity.

Personalized courses for unique business and technology needs

An experienced trainer and faculty member will identify the client's individual training requirements, then adapt and tailor the course appropriately. Our custom training solutions reduce time, risk and cost while keeping development teams motivated. The Hartmann Software Group's faculty consists of veteran software engineers, some of whom currently teach at several Colorado Universities. Our faculty's wealth of knowledge combined with their continued real world consulting experience enables us to produce more effective training programs to ensure our clients receive the highest quality and most relevant instruction available. Instruction is available at client locations or at various training facilities located in the metropolitan Denver area.

Upcoming Classes

consulting services we do what we know ... write software

Design and Development
Application lifecycle management
We generate use cases, UML documentation, architect the system, create an object model, iteratively develop the system, unit and system test and modularize where necessary. These types of engagements are typically longterm and, almost always, incorporate a variety of software technologies.
If you are in need of expertise but only require the assistance of one or two engineers, the Hartmann Software Group can be of help. Instead of procuring talent by way of a placement agency who is likely to contact us, come to the Hartmann Software Group directly. You may realize some savings.
Mentor
The best way to learn is by doing.

The coaching program integrates our course instruction with hands on software development practices. By employing XP (Extreme Programming) techniques, we teach students as follows:

Configure and integrate the needed development tools

MOntitor each students progress and offer feedback, perspective and alternatives when needed.

Establish an Action plan to yield a set of deliverables in order to guarantee productive learning.

Establish an Commit to a deliverable time line.

Hold each student accountable to a standard that is comparable to that of an engineer/project manager with at least one year's experience in the field.

These coaching cycles typically last 2-4 weeks in duration.

Provide Expertise
Services for your business growth.
With the introduction of smart devices, e-marketplaces, electronic forms, SEO practices, big data, virtual office environments, media streaming and so much more, there is hardly a business whose livelihood is not, in some way, dependent upon the inclusion of such software functionality into its online presence, work environment and product offerings. Such inclusion often presents a complex array of challenges that are far beyond the expertise of the business as it demands an understanding of technological options, modular decomposition, backend systems integration and web services. Most importantly, the business requires IT talent and expertise; this is where the Hartmann Software Group shines. To that end, here is an overview of some of the services that we offer:

Business Rule isolation and integration for large scale systems using Blaze Advisor

Develop Java, .NET, Perl, Python, TCL and C++ related technologies for Web, Telephony, Transactional i.e. financial and a variety of other considerations.

Windows and Unix/Linux System Administration.

Application Server Administration, in particular, Weblogic, Oracle and JBoss.

Desperate application communication by way of Web Services (SOAP & Restful), RMI, EJBs, Sockets, HTTP, FTP and a number of other protocols.

Graphics Rich application development work i.e. fat clients and/or Web Clients to include graphic design

Performance improvement through code rewrites, code interpreter enhancements, inline and native code compilations and system alterations.

Mentoring of IT and Business Teams for quick and guaranteed expertise transfer.

Architect both small and large software development systems to include: Data Dictionaries, UML Diagrams, Software & Systems Selections and more