Software Engineer Interview Questions

IT staff in computer server room
Fancy Yan / Photodisc / Getty Images

Software engineers are responsible for developing, testing, deploying, and revamping computer programs. If you're interviewing for a position as a software engineer, it helps to know what types of questions to expect.

Typically, interviewers are eager to find out about your tech skills (i.e., what programs and languages do you know) as well as general problem-solving skills. There will also be questions that explore your logic and analytical thinking.

The interview is also an opportunity to determine how you work with others and if you would be a good fit for the company culture. As well, since most software projects happen on tight schedules, interviewers will be eager to find out how you perform under deadlines, manage your time, and communicate about setbacks and delays to project managers and team members.

If you are interviewing for a position as a software engineer, review this list of commonly asked interview questions. Practice your answers so that you will feel confident the day of your interview.

Software Engineer Interview Questions

  • Which tools do you like to use for keeping track of requirements?
  • What do you care about most when reviewing somebody else's code?
  • What books have you read on software engineering that you would recommend to someone in the business?
  • Describe the process you use for writing a piece of code, from requirements to delivery.
  • Estimate how long it would take to sort 1 trillion numbers.
  • How would you store 1 million phone numbers?
  • How do you make sure that your code can handle different kinds of error situations?
  • How can you reduce the user's perception of waiting when some functions take a lot of time?
  • What is the difference between a mutex and a semaphore? Which would you use to protect access to an increment operation?
  • What is the difference between re-engineering and reverse engineering?
  • How do you ensure that your code meets the requirements laid out?
  • What is the difference between a mock and a stub?
  • What is the difference between local and global variables?
  • What is the agile software philosophy?
  • What is the role of interfaces in design?
  • Name one or two examples of how an application can anticipate user behavior.
  • What type of language do you prefer for writing complex algorithms?
  • How do you find an error in a large file with code that you cannot step through?
  • How can you debug a system in a production environment, while it is being used?
  • How do you design scalable applications?