Wednesday, January 18, 2012

Resumes and Interviews

As a software team leader in Silicon Valley, I am responsible for interviewing a lot of candidates. Let me give you some advice if you are applying for a Java/Web developer position:

Things NOT to put on your resume:
  • Microsoft Office (Really?  Unless you are a fresh graduate, you are applying for a experienced software development position, so it is assumed you are familiar with basic software.)
  • 6502 Assembly/FORTRAN/LEX/YACC or other tools you used 10+ years ago in your undergrad CS courses.  (If you put it on your resume, I might ask you a hard question in that area.)
  • Rule of thumb: If XYZ doesn't apply to the position you are applying for, it probably should be left out. (e.g. not many web servers run FORTRAN)
  • Don't lie.  If you say you're a published author, or hold XYZ patents, I will check.  Assume my Google-fu is quite powerful and your feeble attempt at deception will be your doom.  ;-)
  • Your resume should be 1-2 pages.  A 10 page resume tells me either you are insecure, unable to make decisions, or you are so bad you can't hold a job for more than a week.
  • Be very careful about calling yourself an "expert" in something.  You are challenging the interviewer to a duel of wits, and you are probably not as experienced. 
Things you SHOULD put on your resume:
  • Past experience.  Please indicate if this was a full-time or contract position.  If you worked less than 12 months at that place, be prepared to discuss it.  If you worked less than 6 months at that place, consider if it is even worth mentioning?  Frankly, I don't want to have to hire you if you look like you have a history of jumping ship at every opportunity.
  • Please give an objective statement.  What is your ideal position?  "Making money" is not a good objective statement.
  • A link to your home page or LinkedIn page.  Include on that page things such as: 
    • A photo to help me remember who you are.
    • This is also a good place to put pages 8-10 of that long resume I told you to chop
    • Or someplace to highlight your hobbies and interests to help you seem more "well adjusted".
Phone Interview Advice:
  • Please don't cheat.  I have excellent hearing, and I can hear you turning pages of the textbook, typing Google searches and your friend next to you whispering in your ear.  It won't get you very far because I will start asking "why" questions next.
  • When answering a question, be concise and to the point.  It is OK to ask for clarification.  If you do not know, just say so.  Ask for the answer so you are better prepared next time.  If she/he refuses, write it down so you can study later.
  • Don't expect to get every question right.  I am just probing to see what areas are your strengths.
On-Site Interview Advice:
  • Attitude is often as important as technical skills.  You want to be confident, but not arrogant. Passionate, but not fanatical.  I can fix ignorance, but I can't fix a jerk.
  • Be on-time.  Better yet, be 5 minutes early.  If you are going to be late, call your recruiter or contact person.
  • Show some respect: Bathe and wear clean clothes.  Shorts and flip-flops might be acceptable in rare companies, but not many, and not mine.  Jeans are probably OK, but no t-shirts.  A suit and tie might be a bit overboard, but if you like to dress up, then go for it.
  • Act like you give a $#@ about working here.  Demonstrate you have a pulse instead of just sitting there like a blob expecting me to hire you.  Ask some questions, such as "Can you tell me about the project?", "How big is the development team?", "How long is your typical release cycle?", "How does your team manage the development schedule?  Do you use water-fall, or Agile?"
  • When answering a question, be concise and to the point.  It is OK to ask for clarification.  If you can't explain it, give an example and talk about it.  But in general, responses should be less than 1 minute.  More than that makes you look like you are fishing for the right answer because you do not know.
  • Do a little homework.  Visit the company's web-site before the interview so you know something about the business. 
  • Make yourself stand-out from the crowd.  Tell a joke or something funny (to a nerd at least), like if the interviewer asks if you know Algol, you can say "No, but I am familiar with the binary language of moisture evaporators" (a lame Star Wars reference).  Your mileage may vary with that one, but you get the point.
  • On-site interviews can be intimidating because you don't know what to expect.  Will they make you write code?  Will they give you one of those brain puzzles?  Interview committee, or one at a time?  One strategy is to bet that the interviewer is overworked and just got your resume 5 minutes ago.  Instead of waiting for him/her to remember the hardest interview question they ever heard, or ask you how to solve his current task, take control of the situation.  Make it a dialog.  Ask that person about their product, and then get up and start drawing on the whiteboard about your last project.  If possible, highlight any similarities.  This way the interviewer relaxes and asks you questions about your project that you know about.  But be careful not to ramble on an on, because the interviewer may think you are trying to waste time.  The point is to influence the questions they ask you, not filibuster.  However, if the company has a strict interview playbook, this little Jedi mind trick won't work.
  • If the interview is not going well, for example, they keep asking about areas you are not familiar with, it is OK to stop the interview.  You'll both be happier to end the ordeal and save some time.  (Sometimes the job description you got from the recruiter or job search web site isn't really what the company is looking for.  Usually caused by a manager recycling an old job description, or the manager's underlings are saying "find us a DBA" and all he hears is "find us a warm body who will work for peanuts".)
After the Interview
  • Be a statistical anomaly, and send a thank-you to the people who interviewed you.  It will make you stand-out.
  • If you get an offer letter, then consider your response carefully.  It is very poor form to accept an offer, show up at work for a day, and then take another offer the next day. I will never hire you again.  It is a small world, and I never forget a face!
  • If the interview didn't go so well, don't be too hard on yourself.
    • Frequently, I am just looking for particular skills and a certain amount of experience.  You probably are a wonderful person and very good at what you do, just not what I needed at this time, or our schedule is so tight, I don't have time to train you to get you up to speed.
    • You might be too expensive (or perceived to be over-qualified) for our given budget.
    • The opening was closed early due to the bad economy, and nobody got the job.
    • The company gives preferential treatment to insiders, so your chances were slim even before you walked in the door.
    • Sometimes the reasons are not rational or fair. Interviewers sometimes have big egos and feel threatened by strong candidates, or feel they must prove they are smarter than you. Others let their personal feelings and prejudices get in the way. Its OK, you probably would have hated working with the jerk anyways. ;-)
Believe me, I've been on both sides of the table.  I've had interviews that I thought went great, and I didn't get the job.  Sometimes I felt I bombed it, but got called back for a second interview.  Who knows what is going through the hiring manager's head? But hopefully my advice will help you land a sweet gig!

Good luck!