Hiring a Good Programmer as a Non Techie Hiring Manager
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
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
did you know? HSG is one of the foremost training companies in the United States
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.
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
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.
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