Keys to a good technical interview
So you see these all the time, especially on job sites or on MSN.com. The keys to nailing the interview. I have a few myself, and I thought I’d share them with you all. Who knows, maybe it will help you when you are faced with the dreaded technical interrogation.
If you can’t explain it, it shouldn’t be on your resume
I realize that people tend to put everything on their resume that they’ve ever encountered, either at work or in the classroom. This certainly tends to make a resume more appealing, more engaging, and implies a breadth and depth of experience.
The problem occurs when the candidate doesn’t really know the skill they’ve listed, and are not prepared to discuss the skill or technology in depth. Let’s face it, if you can’t explain to me how to store someone’s name in a database table, you probably shouldn’t have any database technologies on your resume. And the same goes for web design or web development. If you can’t explain the basic functional tags of HTML, such as tables and divs, or you can’t tell me what CSS stands for (Cascading Style Sheets), anything related to front end web design probably shouldn’t be on your resume.
Be prepared for niche assignments to work against you…and prepare to counter it
If your work history is peppered with contract jobs, or your technical expertise is limited due to the type of work you’ve done, it’s probably in your best interest to be able to list on your resume technologies outside of your normal job functions. For example, if you have mostly been a Windows developer, take the time to learn Web development enough to be able to speak intelligently about it. If you’ve always been a web developer, learn basic database technologies enough that you can demonstrate that you can work with it, or at worst that you will be able to learn it quickly.
During the course of an interview, I will drill down to determine where the line in your technology stack stops, and where it stops will tell me much about what I perceive to be your drive to learn and excel at technology in general.
Be prepared to justify any technical decisions you reveal
I’ll be honest, I don’t necessarily plan ahead when I interview. Instead, I ask a ton of questions to get the candidate to talk…and let what they reveal lead to my next question. If the candidate reveals that they built an ecommerce site, I might start by asking what merchant provider they used, or how they maintained PCI compliance (the security standard for accepting credit cards). If the candidate mentions a particular technology concept such as MVC, I might dig into why they chose that over MVP or MVVM or standard Web forms architecture. Those answers will reveal the candidate’s true involvement in the project as well as how they think when they design and build systems.
Integrating third party tools is not enough
Be prepared to honestly answer “I don’t know”
Without a doubt I will stump you somewhere. Well, almost without a doubt! There is no developer on the planet who knows everything, and how you handle your lack of knowledge is just as critical as what you know. If you can’t admit to not knowing, and attempt to answer with a best, perhaps informed perhaps not guess, I’ll likely recognize that for what it is and that will be a point against you.
Bring your success stories, in particular crises or major problems solved
Everyone who has worked in this industry has battle stories. I have a list longer than I care to mention, including the day a single bad value passed into one of our web pages hung 14 million queue messages on 20 servers on a Monday morning. It took me 36 hours (straight, no break) to fix it. That is one of many stories I could tell during an interview about something I’ve faced that was difficult that I solved. Bring yours. I’ll likely ask you if you have any moments in your career that you were particularly proud of, and if you don’t have any, I will wonder how much troubleshooting you’ve done and how many roadblocks you’ve managed to push through.
Communication is key
Be able to communicate clearly and concisely. But more importantly, show that you can communicate with others. Many times developers are working with product managers, general managers, designers, marketers, and others. A good developer is able to communicate effectively with all of the different types of people they will encounter. Indeed, fleshing out software requirements, getting clarity around what needs to be done and what use cases might exist, are all part of what will set a candidate apart.