What questions do you wish your co-workers had asked candidates in the interview process, whether to identify strengths/ weaknesses, gaps in knowledge, personality issues, and so forth?
Interview questions. That's a great question. Unfortunately there's no right or wrong answer. A lot of hiring tech folks have switched to a more behavioral-style interviewing questions rather than a pile of technical questions. I've heard arguments for and against both sides, and there's merit to both. I've been on both sides of the table, and here are some of my favorite questions...
- **What's your favorite Visual Studio keyboard shortcut? Why?** This is a great question because it's not technically deep, but it shows that there's an understanding of how to use the tools that they work with every day. Someone who shows a mastery of the tools they use is usually a better candidate than someone who shows a mastery of a programming language... they're usually more prone to cranking out code that works rather than going through the theoretical computer science type solutions (there are exceptions). If you're interviewing for non-Microsoft and/or non-developer folks, you can change that up by asking something about their preferred IDE and/or toolset.
- **Can you describe three design patterns? When might you use them? Why are they important for developers?** Design patterns are great questions to ask developers. Junior and even most Mid Level developers will seldom be able to answer this completely, and that might well be okay. Remember that when someone knows patterns, they're more prone to being able to communicate their efforts with other developers.
- **Can you describe your debugging process.** This is an open ended question that allows the interviewee to speak to how they use their tools every day. There are a dozen right answers to this, and depending on their background, they could be using the tools in the IDE and/or browser and/or disassembler and/or... the list goes on. It may be foreign to you, but what's most important is that they are able to articulate how they work/think, and that they are reasonably capable of tackling problems that come their way.
- **What databases have you worked with? What's your favorite? Why?** This may or may not be asked for some developers, but it's a great leading question to allow them to pontificate more on their toolset. See above.
- **What's something that you are passionate about?** Don't ask any more than that. You don't want to ask personal questions in an interview for legal reasons. But the question should invoke a flurry of emotion in the interviewee... and usually it'll lighten the mood. Interviews are tough, and when someone can talk about something they're passionate about, they'll relax, and you can see who they really are.
- **Can you create a entity relationship diagram for Problem X. Explain your answer.** Where Problem X is something simple... four or five tables with a little bit of normalization. Remember, most ERDs have no single right or wrong answer, but there are definitely ones that are more or less correct.
- **Can you tell me where you see yourself in X years?** The answer really isn't important in this one. They might say architect or manager or developer or cowboy. It doesn't really matter. What's important is that they have a career goal and objectives and a plan. As an effective manager, you can motivate someone by helping them achieve their goals, and a motivated employee is an employee that produces. Remember: this is a tough question, and not everyone will be expecting it. If someone can't answer, it doesn't necessarily reflect negatively on them, but if over the rest of the interview they are unable to procure any signs of self-motivation, they may be a difficult hire.
This is just a small sample of the questions I've used over the years. Don't forget to dive in as technically deep as you see fit, but I think these relatively open-ended questions that provide a baseline for many technical roles.