5 Job Interview tips for software engineers

Tip #1

Be honest to answer technical questions as you are not expected to remember everything (for example you might know a few design patterns, but not all of them). If you have not used a design pattern in question, request the interviewer, if you could describe a different design pattern. You have no control over what questions get asked, but you have control over what message you want to get across to the interviewer. This is done mainly through open-ended questions like

Tell us about an instance in your recent project where you made a significant contribution? Tell us about yourself? What really motivates you?

More open-ended questions are discussed in Tip#3. So, make the most of your open-ended interview questions through proper preparation. Research the organization, review the requirements, review your resume, evaluate how you can link your achievements and experience to the requirements, and have a list of questions for the interviewer (interviews are two way street -- you need to assess the organization as well  -- this will make your dilemma easier if you get multiple job offers ).

Tip #2

Every body gets nervous during job interviews, and being a little nervous is natural. If you are too nervous, then you can overcome this by preparing for your interviews and by treating each interview as a free technical/behavioral training course. Have an attitude that even if you are not going to get the job, you are going to learn something good out of it. If you go with this attitude, you will put yourself in a win/win situation and you might really get the offer. If you take this attitude, you can learn a lot from your interviews. Also, never think that you have to answer all the questions correctly. Do not get put off by a tricky or a difficult questions. The interviewer might be testing your temperament. What really earns you a job is the combination of your knowledge + experience + soft skills + attitude

Tip #3

Where possible, briefly demonstrate how you applied your skills/knowledge in the 16 key areas like design concepts, issues relating to transaction management, performance, memory management, concurrency management, etc, and best practices, etc. Find the right time to raise questions and provide answers relating these key areas to show off your technical strength.

When you provide answers, the interviewers are assessing 5 key qualities:

  1. Passion:  are you passionate about your chosen profession? So, provide answers with enthusiasm.
  2. Communication skills: ability to communicate your thoughts concisely and effectively based on the target audience. A very popular question is -- Can you give a high level (or 100 feet) overview of the system architecture you had recently worked on? You need to be able to look at things from both business and technology perspective. Can you explain the solution to a non-technical person without any technical jargon?
  3. Technical skills: language/specification fundamentals, ability to understand potential failures relating to design issues, language caveats/pitfalls, concurrency issues, performance issues, etc.
  4. Analytical skills: Ability to think dynamically, and deliver solutions to complex problems. Ability to analyze “what if ” scenarios -- what if I want to support a non Web client? what if I want to support other types of products? what if an exception is thrown here, will my transaction gets rolled back?, etc).
  5. Ability to get things done: with good technical and soft skills.  

Go through your SAR (Situation-Action-Result) that you had written down.

Tip #4

What was the last programming language X related technical book or article you read? Which industry specific website(s) and resource(s) do you use to keep your knowledge up to date beyond Google? What do you think of some of the emerging technologies/frameworks like AOP, IoC, Functional Programming, JavaScript based MVW web frameworks, etc? What recent technology trends are important to enterprise development?

The interviewer will be mainly looking for your industry knowledge and curiosity to learn.  How eager are you to learn new things, and how well you had kept up to date with the emerging technologies?

Tip #5

Prepare tactful answers to “trap” questions like:

Q1: Why are you looking for a new opportunity?
Q2: What are your greatest strengths and your greatest weaknesses?
Q3: What was the result the last time you and a coworker disagreed on a technical issue?

You should really know how you are going to answer these types of questions before you are asked them and what the interviewer is looking for when asking these questions.

Q1's purpose is to see if you are going to bad mouth your current or previous employers.  It is a sure sign you will do the same to them, so don’t do it. Never bad mouth your former employers. A better answer would be -- "looking for more challenging environment", "looking for opportunities to learn technology X and sought-after framework Y", "looking for a more leadership role", "looking for a more business focus in finance domain", etc.

Q2's purpose is to see if your weaknesses will adversely affect the team culture or the task you are going to perform. When you're asked what your greatest weakness is there are several different ways you can answer

  1. mentioning skills that aren't critical for the job
  2. skills you have improved on, and the interviewer can clearly recognize it
  3. turning a negative into a positive

Non-Essential skills: As a programmer, you could say that your negotiation skills are not that great. Another example would be presenting in front of a very large audience. 

Skills you have improved on: For example, 

  • Creating a circle of  influence. 
  • Ability to look at things more from a business perspective.
  • Convincing the target audience with alternative solutions.

Turning a negative into a positive
  • Keep working on finding a solution to a problem without much break, and recently have trained  myself to have a break, and often find the solution when more relaxed. Often get a better clarity on the solution when commuting to work in the morning as opposed to staying back too late to solve the issue. 

1 comment: