1 of 19

Interviewing Successfully

Getting the right software engineering job

Created by Peter Asher

With Edits from Eitan Rosenfeld & John Ellis

2 of 19

Software engineering is set to explode in South Africa. As part of the early participants in this IT rush, you are uniquely positioned to take advantage.

Knowing how to interview well will enable you to advance your career effectively in a booming economic sector and “ride the wave”.

3 of 19

Why am I qualified to teach this?

  • I’ve interviewed with around 40 companies.
  • I’ve interviewed close to 100 candidates.
  • I’ve personally trained folks who have never held a software engineering position how to interview.

4 of 19

What we will cover

  1. Interviewer’s Point of View
  2. Attitude
  3. Preparation
  4. Behavioral Questions
  5. Technical Questions
  6. Questions you can ask
  7. Choosing the right job

5 of 19

From the Perspective of the Interviewer

It’s important to get inside the interviewer’s head to think about what they want to see out of you.

In general, they are trying to answer the following questions:

  • Are you smart?
  • Can you code?
    • Can you deliver?
  • Do you have the attitude of a professional?
    • Can you be relied upon?
    • Are you easy to work with?
  • Who are you/what’s your story?
    • What motivates you?
    • Why are you applying?
    • How did you get where you are now?

Do your best to remember that this is what you want to show them during the time you have in the interview. They should be asking you questions that allow you to display these facets, but if they aren’t, you need to find a way to show them.

6 of 19

From the Perspective of the Interviewer

The most difficult part of interviews is finding a way to allow someone else to view your critical thinking, behavior, and attitude in the space of a few hours.

Practice being communicative, and make sure you are reaching the other person(s) on a deep level. You are working as a team with them to transfer as much information about yourself as possible.

Be comfortable, do your best to establish common ground to make an emotional connection, and once this is done, the pipeline between the two of your minds will begin to open.

7 of 19

Qualities to project

  • Confidence without arrogance
    • “Confidence is when you believe in yourself and your abilities, arrogance is when you think you are better than others and act accordingly.”
  • Composure under pressure
    • You aren’t expected to know ALL of the answers. You are, however, expected not to crack under the pressure. Your ability to hold it together when things aren’t going perfectly reflects on how you’ll act when things get tough on the job.
  • Intelligence & problem-solving ability
    • No matter your level of previous knowledge with regards to a problem, you must be able to solve issues methodically and ask the proper questions. A dialogue between the interviewer and the interviewee can allow them to see your thoughts better.
  • Whatever qualities the interviewer is projecting
    • We tend to like others that we can relate to, whether it’s through physical mannerisms, level of extroversion, or style of speech. This technique is known as mirroring, and if you mirror someone, they’ll feel more comfortable with you.

8 of 19

Preparation

9 of 19

Preparation

Company Preparation:

Why? Showing you’ve done your research indicates that you’re interested

  • Know what the company does
  • Know what your role entails
  • Know how your role fits into the company

Technical Preparation:

Why? Showing you are a capable engineer is the most important part of the interview

  • Be able to speak about and demonstrate anything you put on your resume
    • Prepare yourself to talk about all aspects of projects you’ve worked on
    • Be able to write in languages that you claim to know, and understand how all your listed technologies fit together
  • If you can find resources online on what they’ll ask, brush up on those topics as much as possible
    • Even if you don’t know everything, the fact that you’re able to pick up subjects quickly before an interview speaks volumes
  • Learn what technologies they use and what they are used for
    • Know how to integrate these technologies from a system design perspective

10 of 19

Behavioral Questions

Companies use these to:

  • Get to know you better
  • Relax you

Guidelines when answering:

  • Look up common questions and prepare projects/situations to talk about. Practice, practice, practice.
  • Modify the answer to include more information about yourself that you want to express.
  • Keep it brief, don’t ramble too much.

11 of 19

Behavioral Questions

STAR Technique:

  • Situation:
    • What are the details needed to understand where you started?
  • Task:
    • What was your objective or responsibility?
  • Action:
    • What did you do?
  • Result:
    • What was the outcome?

12 of 19

Technical Questions (The focal point)

Companies use these to discover:

  • Your ability as a problem solver
  • Your coding skill
  • The depth of your knowledge

General Answer Guide:

  1. Define the problem as clearly as possible. Resolve ANY questions you have about what is being asked. Good communication skills are ALWAYS useful and valued by engineering companies.
  2. Attack the problem with a top-down approach. Break the problem up into chunks, and continue to do so until the parts you have separated are easy to understand. The most complex assignments can be made simple by dividing parts up.
  3. Write the code, or draw the design carefully. Accuracy is the most important attribute to have, not speed.
  4. Test your code or design by walking through it with different scenarios and carefully fix any mistakes.

Turning negative into positive:

When you don’t know parts of the answer, admit to it, and ask questions to the interviewer. An engineer rarely knows all the answers, and your ability to synthesize their answers and come up with a solution will impress. Thinking on the fly & learning quick are huge upsides to have, so be confident and remain unphased when you aren’t all-knowing.

13 of 19

Technical Questions (The focal point)

General Answer Guide:

Resolve ANY questions you have about what is being asked. So many brilliant programmers end up wasting time doing the wrong thing. Good communication skills are ALWAYS useful and valued by engineering companies.

Example of Requirements Clarification

Task given:

Design a program that will read the words on a web page and return common words.

Questions you could ask:

  • Can you define what “common” words are?
  • Do you care about words that aren’t visible to the user within the HTML?
  • Are these websites of a size that can be run within the RAM of a computer or does it need to be stored on disk?
  • Would you like a front-end designed for this, or is a command-line executable file?
  • How would you like the data to be stored?

14 of 19

Technical Questions (The focal point)

General Answer Guide:

Attack the problem with a top-down approach. Break the problem up into chunks, and continue to do so until the parts you have separated are easy to understand. The most complex assignments can be made simple by dividing parts up.

Example of Top Down Approach

Task given:

Design a program that will read the words on a web page and return common words.

Example of breaking problem down (partially):

We will need to grab the words, process them, and return the common words.

  • Grabbing: we will need to specify a website, send a request, and process the response
    • Specify website: prompt user for URL, check to make sure it’s valid
      • Use a text box on an html page for URL
      • Ping URL to see if proper response code returned
  • Processing: we will need to total the counts of each word, and then select the ones that exceed the threshold of “common”
  • Return: we will need to return the common words to the user

15 of 19

Technical Questions (The focal point)

Example of Synthesizing Knowledge

Unknown within task:

Interviewer has asked to use a SQL database, and to draw out a table structure. Interviewee doesn’t know how to do this.

Example of Dialogue:

Interviewee: I’ve never designed a table structure, is there something similar that is analogous to help me grasp the concept?

Interviewer: Think of it as an Excel document with labeled columns and data types where you can run simple queries.

Interviewer: In that case, my design would be to have a column of strings entitled “Words”, and a column of integers entitled “NumOfOccurences”. I will increment the NumOfOccurences column every time we encounter a given word.

Turning negative into positive:

When you don’t know parts of the answer, admit to it, and ask questions to the interviewer. An engineer rarely knows all the answers, and your ability to synthesize their answers and come up with a solution will impress. Thinking on the fly & learning quick are huge upsides to have, so be confident and remain unphased when you aren’t all-knowing.

16 of 19

When it’s your turn to ask questions

Why do companies let you do this?

  • They want to sell themselves to you
  • They want to give you a chance to lead the interview; you can learn a lot from a candidate based on what questions they ask

What should you ask?

  • A question that you are genuinely curious about, interest in a company is a positive
    • Example: What would my day-to-day responsibilities be in this role?
    • Glassdoor.com can give you ideas of a company’s shortcomings and/or strengths to ask about
  • A question that demonstrates your technical knowledge
    • Example: I noticed that you use MongoDB for your back-end. How do you resolve data integrity issues?
  • A question that demonstrates your love for technology
    • Example: I’m not familiar with how you deploy your code. Would you please explain it further?

17 of 19

How to choose the right job

  • In the US, and many other places, the demand for GREAT engineers outpaces the supply. As a result, GREAT engineers command a high salary, good benefits, and can choose what they work on.
    • It is reasonable to expect the same in South Africa in the future.
  • With that in mind, it is important to think about how you will become a GREAT engineer. This means choosing your place of employment based on career advancement, skills you will learn, brand recognition, etc.
    • Try to build a career narrative that you want to follow. Choose jobs/activities that support your ambitions to demonstrate your commitment to the goal and support it with relevant experience.
  • Money will come as a side effect of being a GREAT engineer
  • Do not make the mistake of choosing a slightly higher salary over a better investment in your skills and career advancement. The field of IT changes every few years, and you will be stuck in a hole if you don’t prioritize your future over the present day situation.

18 of 19

Closing Remarks

  • Do your best to sell yourself as best you can, and remember that the short time you have in an interview is all they have to go on with respect to hiring you

  • Practice makes perfect. You will be so much more successful if you prepare well.

  • Remember those who have mentored you as you continue to grow, and help others in the same way that you have been helped.

19 of 19

References

  • Interview questions, procedure, reviews by company
  • How to interview
  • Interview problem practice w/ timers & tests