Interview

Objective: Convince the employer that you have enough of the skill sets they require to perform the job.

The technical interview is the deciding factor in the job application process for whether or not to hire you, so it pays to be prepared.

Dress casually! There is rarely need to wear a suit, with exceptions being for positions in sales engineering or the finance industry. Dressing casual is expected on the West Coast and in the Northeast, but be more conservative in New York. Skip the jacket and tie; instead opt to wear a nice button down shirt/blouse or polo and khaki pants/skirt. Startups are even more lax; jeans are usually no problem. Most software development firms allow pretty much any work attire for employees, so it makes sense to have applicants dress casually, too.

Don't forget to turn off your cell phone! Even leaving it on vibrate is distracting if it goes off during an interview question.

As a general rule of thumb, the bigger the company, the longer the interview process - industry giants like Google, IBM, and Microsoft usually perform full day interviews, with 4-8 people interviewing you for 45 minutes up to an hour. Smaller companies usually have a shorter but similar process. Startups seem to prefer homework-type interview questions, where they give you a programming problem and a deadline; this conserves their valuable time by not having to do an in-person interview unless the candidate is technically gifted, only calling in candidates to look for a cultural fit.

Most interviews are with a single interviewer, in a quiet room with a whiteboard. There's a big difference between coding in an IDE and on a whiteboard, so it's a good idea to practice using a whiteboard and markers. Markers dry out if you wave them around uncapped for awhile - be aware of this fact! Also, practice using the board space efficiently. You'll usually be expected to write actual code, but sometimes pseudocode is accepted. Make sure to verse yourself with one language especially well - this language should preferably be the main language that the company uses for the position you're applying for.

Put your best foot forward; take the time to write in your best handwriting and use correct syntax.

The problems asked are generally not applicable in real life because they have to be simple to describe in order to speed up the process, but slightly tricky to solve correctly in order to weed out lesser candidates. Any solution that involves a lot of code is probably wrong; instead, there's usually either a language construct or data structure that makes it simple. A lot of problems will restrict your usage of certain language constructs, forcing you to think outside the box.

Usually the questions get harder as the day goes on; the interviewers get feedback on your progress and up the ante to find out what level you're at. Expect difficult questions that take up pretty much all of the allotted time with each interviewer, so don't be frustrated if you can't get to an answer immediately, especially near the end. There has to be a certain amount of difficulty to weed out the lesser candidates, so just keep trying different techniques and working at the problem.

Each interviewer will have their own personal range of questions they like to ask, so you'll inevitably get along better with some and not so well with others. Don't worry too much about the discrepancy, but certainly try your best with all of them. You'll most likely meet with the boss or upper management last to discuss the overall bird’s eye view of the company.

At the end of the interview, some companies will ask you whether the process was exhausting. You would be wise to answer in the negative, even if you are a little tired, as they're looking for candidates that are able to handle a long day of serious thinking and development.

Good signs that you're about to get an offer include requests for your references and efforts to convince you to work for the company, especially by management.

Webfaction is the ULTIMATE hosting platform for any serious developer.
SSH, WordPress, Rails, Django, cronjobs, compile and execute anything.
ProgrammingInterview.com is proudly powered by Webfaction.