Software Engineer Interview Questions

Post a Job

  1. What programming languages have you used in the past? What are your top two programming languages? See answer
  2. How much are you coding on a daily basis? If you do not code on a daily basis, what is typical in your role? See answer
  3. How comfortable are you in a startup environment, or do you prefer working in a more established company? See answer
  4. What distinguishes a great software engineer from a good one? Do you feel you have those qualities? See answer
  5. In your opinion, what are the principles of good software engineering? What are some basic principles everyone should follow? See answer
  6. If needed, how would you go about designing scalable applications? Walk us through your process. See answer
  7. Explain what black box and white box testing are. See answer
  8. What?s the most important thing to look for or check when reviewing another team member?s code?
  9. What?s your process for writing code? Explain your process to me.
  10. Do you regularly seek out professional development to stay aware of changes in the software engineering field?
  11. How do you test your code to ensure it?s error-free?
  12. Explain what responsive design is and describe the differences between fluid and fixed layouts.
  13. Can you tell us how a stack differs from an array?
  14. What?s the reason for having a sandbox? What other resources could you use instead?
  15. Are you comfortable providing an alternative approach to solving a software engineering problem?
Show more questions Show fewer questions

8 Software Engineer Interview Questions and Answers

Q:

What programming languages have you used in the past? What are your top two programming languages?

A:

This question allows you to see how many programming languages the candidate knows and whether they are familiar with a language you commonly use at your company.

What to look for:

  • Applicant’s programming knowledge
  • Applicant’s fit for your company
  • Level of proficiency

Example:


“I’m proficient in Java, C++, Ruby, C and Ocaml. I having a passing knowledge of SQL and Perl. My two best programming languages are Java and C++.”

Q:

How much are you coding on a daily basis? If you do not code on a daily basis, what is typical in your role?

A:

Since coding is a big part of being a software engineer, if a candidate isn’t spending much of their time coding and they aren’t in a management role, it may be a sign of problems with their coding skills.

What to look for:

  • Commitment to coding
  • Applicant’s coding ability
  • Role in previous job

Example:

“I code at least 30 hours a week. The rest of my time at work is spent working on design reviews, scrums, meetings and other tasks to keep projects moving forward.”

Q:

How comfortable are you in a startup environment, or do you prefer working in a more established company?

A:

Working in a startup is very different than being at a more established company. You want to make sure a candidate is a good fit for your company environment and expected workload that comes with working in a startup.

What to look for:

  • Company fit
  • Ready for startup life
  • Understanding of expected workload

Example:

“There is something to be said for the predictability of working in a more established company with it’s set goals and office hours. However, I must say I really enjoy the unpredictability and excitement of working at a startup. Yes, the hours are long and everything moves at a breakneck pace, but there’s nothing quite like building something from scratch and seeing where it goes.”

Q:

What distinguishes a great software engineer from a good one? Do you feel you have those qualities?

A:

It helps to understand how a candidate feels about what makes someone the best in their career and how they feel about their skills and what makes them a good or great software engineer.
What to look for:

  • Thoughts on software engineering
  • Their idea of greatness
  • Honesty and introspection

Example:


“A great software engineer has a healthy balance between perfectionism and pragmatism. Too often engineers want their code to be perfect, while losing sight of the overall goals of the project. A great programmer also learns not to fall in love with their own code, to keep a healthy skepticism until it’s been thoroughly tested, making sure it is the right choice for the project at hand. And yes, I believe have the qualities of a great programmer, though working on my need to be perfect is an ongoing battle.”

Q:

What’s the most important thing to look for or check when reviewing another team member’s code?

A:

While there’s no definitive right or wrong answer to this question, it is designed to test an applicant’s knowledge, how well they articulate their debugging process, and whether they’re a victim of tunnel vision or can they keep their focus on the project at large.

What to look for:

  • Attention to deal
  • Debugging skills
  • Problem-solving ability

Example:

“Some things you want to look for when reviewing a team member’s code is its functionality and how readable it is. Is it secure, or are there obvious flaws that would cause security problems and make it easy to hack? Is the code simple, or are there a lot of unnecessary line of code that needs to be removed or rewritten? Does it meet the regulatory requirements in place for the project, and is it optimized to not be resource-heavy?”

Q:

In your opinion, what are the principles of good software engineering? What are some basic principles everyone should follow?

A:

There are different opinions on what makes good software engineering, and those opinions guide a company’s culture. This question will allow you to see if the candidate’s philosophy on engineering matches your own.

What to look for:

  • Thoughts on software engineering
  • Applicant’s coding philosophy
  • Critical thinking skills

Example:

“I think one of the main principles of software engineering, and one I try to live by, is to keep things as simple as possible. You’re often already dealing with complex algorithms and design concerns, so no need to make things even more difficult with overly complicated, resource-heavy code. Your code should be simple, lean and easy to read. If you start there, the rest will follow.”

Q:

If needed, how would you go about designing scalable applications? Walk us through your process.

A:

This question is designed to test a candidate’s knowledge and thought processes when it comes to design and solving common project specific problems.

What to look for:

  • Test applicant’s knowledge
  • Problem-solving skills
  • Understand their approach to design

Example:

“You design scalable projects by writing as little code as possible. You also want to reuse as much code as you can while not over or under doing your design. Then break things down into modular sections that can run on multiple or separate systems.”

Q:

Explain what black box and white box testing are.

A:

Testing software to ensure it works as it's supposed to is vital for a successful software engineer. As an interviewer, you'll want to make sure that your software engineer candidate is capable of running basic testing to make sure they do their coding correctly. It's important for the candidate to both understand the intricacies of the testing and to be able to explain how the testing works to someone who may or may not have a background in software engineering.

When the candidate responds, look for an answer that:

  • Is straightforward and easy for you to understand
  • Provides clear distinctions between the two types of testing and what roles are most likely to use them
  • Offers an example of how they might use the testing in their role with your company

An effective answer might resemble this example:

Example:

"White box and black box testing are two ways software engineers, developers and testers make sure the software works as it should. In white box testing, the person testing the software knows exactly which element of the software they're assessing. In black box testing, the person testing the software doesn't know which element they're assessing. Both types of testing are useful, and in my role as a software engineer for your company, I would implement both to ensure we create the best possible software for our clients."

Post a Job
Ready to get started? Post a Job

Explore Interview Questions by Title

No search results found