Don’t walk into an interactive developer job interview unarmed.

As a director, I interview lots of programmers for positions in Front-End Development, Back-End Development, SQL Development, QA Development and even Technical Business Analysis. From my experience in this role I’d like to give job seekers a few tips on points that can make or break your next interview. Before I get into those details, I will say that I’m not big on written testing. That doesn’t mean that I don’t consider test scores provided by recruiters as part of the initial vetting of a candidate. If you score well, bring the results. They can never hurt. I just find that the candidate who really knows their stuff can speak to it in the interview in a way that convinces me of their skill level. I really look for people who “get it”. The candidate that demonstrates to me that programming, regardless of the specific language or stack, is a universal toolbox will win points regardless of a specific degree or test scores.

 Pro Tip #1 : Know your OOP.

Seriously. Come ready to speak about the principles of object oriented programming. Any programmer who can’t speak intelligently about the application of OOP principles, whether it be in front-end JavaScript code, back-end C# or PHP (or some other language), or SQL is an immediate risk. It says to me that you have gotten by this far by cutting and pasting other people’s code and no one was the wiser.

Come into the interview ready to rattle off the 4 basic principles of OOP

  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism

Google it.

Familiarize yourself with these principles until you can describe them in your own words with illustrative verbal examples. Then, to get bonus points, describe how you achieve the same results two different languages. For my shop I’d like to hear a C# or PHP back-end example and then how you would accomplish it in the front-end JavaScript. Here is a good references for Polymorphism in C# and then one in JavaScript. You might even do something unexpected and describe Polymorphism in CSS!

C# : http://msdn.microsoft.com/en-us/library/ms173152.aspx

js: http://www.codeproject.com/Articles/315169/Polymorphism-in-JavaScript

Again, it’s not so much that you need to show me that you can memorize the description of the four pillars of OOP, as it is that you can talk about the concept, why you use it and how you would go about accomplishing it in a language that you are not fully comfortable with. Work on your ability to tie these tenants to complimentary concepts, for instance, describe the connection between encapsulation and scope or inheritance and scope… actually, if you can convince me that you truly understand scope in OOP, I’ll be fairly impressed with that alone!

Pro Tip #2 : Don’t drop buzzwords that you aren’t ready to talk about.

If you sit down in my office and say something during the interview like “I’ve been mostly working in Agile lately…” and then I write a note, you can pretty much bet it says “bullshit”. Don’t queue yourself up for humiliation. If you claim that nowadays you do everything in HTML5, then you better be able to elaborate on what that really means. It’s much safer to say the you normally use the HTML5 DOCTYPE and try to build your front-end fanciness in JavaScript whenever possible if you don’t want to field a few gotchas.

The popularity of a topic doesn’t make it a good thing to bring up in an interview. To say that you mostly program front end code in jQuery is a glaring mistake. You may use jQuery frequently in context with your JavaScript programming, but you don’t program in it. Similarly, if you are going to drop the “responsive” buzzword, then you should be ready to show an understanding of media queries, the rationale behind common breakpoints, how css grid systems work, and why you measure things in percentages.

Quiz yourself on being able to demonstrate the knowledge of:

  • What’s the difference between SOAP and REST?
  • Can you describe how CSS and jQuery relate with the DOM?
  • Can you explain the concept of MVC? (Microsoft, General)
  • Why has JSON become more popular than XML? (hint)
  • Can you describe consuming an API? Do you even know what it stands for?

Don’t just sprattle buzzwords and acronyms without being able to back up your BS. A conversational knowledge of popular topics goes a long way to instilling confidence in your interviewer.

Pro Tip #3 : Know your mark. If you have a lame corporate job, demonstrate some personal interest.

I don’t know how many resumes I scanned from people who work at banks or a government agency who obviously want to get out into the exciting world of interactive marketing or gaming. They are like reading library cards in a medical school. Oh my God, you had me at prior Senior Financial Systems Analyst! Please wow me with the fact that you worked on an intranet portal! (not really… I’m being sarcastic)

If your prior work is confidential, hidden behind a login, or otherwise unpresentable it will behoove you immensely to show me your best pet project. Show something that demonstrates your interest in modern web coding, even if it’s just playing around. Remember I’m not the guy interviewing the designers, I’ll forgive you for not be an artist, but if you are applying for a front-end programmer position and all you have to show is formatted rows of data and non-styled forms, then you are going to need to back up that enthusiasm for the position with something that incorporates animation, or mashes up APIs, or goes “pew pew” and blows stuff up.

Your interest in programming and exploring new things in this field is key to me being interested in that big salary the recruiter told you, you could get. Demonstrating how you chase down curiosity is a big bonus during an interview in interactive.

If you are interviewing for a back-end position then show me how you made it super-easy for the front-end team to consume some complex data or how you built a site using Entity Framework or Node.js just for the heck of it.

Pro Tip #4 : Don’t ask me when a typical day starts and ends.

Your interviewer will get to that point in the conversation when they say “…so, do you have any questions for me?”. If you respond with this question, one of two things will happen. One, I’ll totally lie to you and tell you that we always try to get here at 9 and leave at five with occasional exceptions; or Two, I’ll crush your hopes of having a social life with the truth. The honest truth is that it’s somewhere in between there. Nobody wants to work long hours, but we do it when we have a deadline and having a team member that isn’t willing to stick it out with the rest of the team is just, well…disappointing.

In cycling it’s referred to as Rule #5. I think it applies to a lot of things. If you want an awesome job with a great salary then you should make it a point to short circuit this topic in the interview completely by interjecting somewhere “I’m used to doing whatever needs to be done to get the job out the door as accurately as possible. Do I want to work into the night to do that? Of course not, but I will when it’s necessary.” Now you see me making a note again. It reads “sucker!” – I mean that in the most endearing way, seriously. You almost hired.

Pro Tip #5 : Be the bridge.

Programmers who can bridge the communication gap between project teams are gold plated in my opinion. If you can speak to non-technical people about technical things without causing them to glaze over, and then interpret those ideas into a detailed development approach then you are your way to being a leader. If that is your goal then take one more piece of advice into account: position yourself as a hands on leader. Convince me that you are not just coming here to go to meetings and tell people what to do. Show me that you want to get dirty with the code and show the other kids how to make killer mud pies.

I think one of the biggest mistakes we’ve ever made in recruiting is advertising a “lead programmer” position when we wanted a really experienced senior programmer with leadership potential. When I read resumes of people in management positions with outdated skillsets, I just pass them up. Candidates and recruiters seem to see $$$ dollar signs when a lead position is advertised. 10 times out of 10 I will hire the person with current skills, a great work ethic and possible leadership ability before the person with pure leadership skills. Interactive Agencies are the home of do-ers. Remember that, even if your goal is to eventually be a manager.

Position yourself as a problem solver, solution provider and dedicated team member. Convincing your interviewer of your titanium resolve goes a long way in this business.

Bonus Tip : Be Yourself.

On my team there are young guys barely out of high school, older guys with military backgrounds, women with tattoos and a love of zombies, dudes with weird chucks of metal in their face, varying dialects from various countries and various religious beliefs. Your uniqueness is a virtue, so long as it doesn’t prevent you from being part of the rest of the circus. Your willingness to be part of a diverse team and also be one-of-a-kind is a great thing.

Try not to tense up when you’re in the interview. If you know your stuff, be confident and smile. Visualize me having no way to turn you down, because you’re awesomeballs.

Good luck on the job hunt!

Tyrus Christiana is the Director of Software Development at BFG Communications in Bluffton, SC www.bfgcom.com

Daily Developer Affirmations

I sent this out to my team a little while ago. I like to color really serious messages with a little constructive humor. It worked OK. Reuse at will. If Al Franken’s lawers come after you, then I totally copied this from somewhere…

[Original Message] Subject: Daily Developer Affirmations

Adapted from Stuart Smalley, who has been a Senator for a while now in the real world BTW.
Repeat to yourself each morning for better health:

I deserve good things.
I write really helpful and descriptive check-in comments for all my code.
I am entitled to my share of happiness.
I write really helpful and descriptive resolution comments for all of my bugs.
I refuse to beat myself up.
I comment my code with pride, excellence and political correctness.
I am attractive person.
I always request code reviews, after double checking my work, and perform code reviews with the care of a parental figure searching their child’s school bag for drugs, porn and weapons.
I am fun to be with.

And by golly, people like me.