Skip to main content

100 Interview Questions for Software Developers

This blog post is inspired by Jurgen Appelo 100 interview questions for Software Developers. I prefer to have a conversation instead of a knowledge test, so my questions do not have any correct answers. They should lead to conversation instead of validating knowledge.

Here we go.

Development Methods

  • How do you prefer to version control your code?
  • Do you follow any known patterns of version control?
  • What does continuous integration mean to you?
  • What is your definition of done?
  • How do you safely deliver code to production?
  • How do you make your production environment reproducible in test and dev?
  • How would you start troubleshooting an issue only visible in production?
  • Describe the steps involved for you to fix a bug
  • What is the importance of git commit messages and how do you format them?
  • How do you roll-back a failed deployment to production?
  • Production goes down because of a bad deployment. What would make you roll-back and what would make you roll-forward?
  • How do you manage assets that should not be committed to source control, like passwords or databases?
  • Where do you think code ownership should lie?
  • When should refactoring happen?
  • What code should be written by solitary programmers, and what code should be pair programmed or mob programmed?

Quality Assurance

  • What does quality mean for you?
  • How do you ensure quality in your delivery?
  • Who is testing your code?
  • What does testability mean to you?
  • What quality measures do you consider low hanging fruit?
  • Where do you draw the line between enough testing and too much testing?
  • Mention what statical code analysis tools you use
  • Do you write tests first, after or at the same time as the code?
  • What is your opinion on integration testing?
  • How do you deal with a test suite with brittle tests that require much maintenance?
  • How can you improve quality by communication?
  • How do you think that management can enable quality?
  • How do you measure quality?
  • What are your thoughts on technical debt?

Coding

  • What is your favorite language and why?
  • What do you consider a good framework?
  • What is your preferred way to document your code?
  • How do you make your code readable to others?
  • What do you consider maintainable code?
  • What are your most used development tools?
  • What is the worst feature of your favourite programming language?
  • What is the most common programming error people do?
  • How do you typically handle errors in your application?
  • Mention something you do to make your application secure.

DevOps

  • What’s your suggestion to improve deployment frequency?
  • What’s your suggestion to reduce time from you start working on a feature until its available to users?
  • What can we do to prepare for a system to be restored faster, when it goes down?
  • How would you propose we reduce number of releases that cause problems in production?
  • How do you verify the impact of your feature in production?
  • Where do you draw the line between development and operations?
  • How do you manage different configuration options for different environments?
  • How can you as a coder make your service easier to manage for operations?
  • What are the things that you believe should be automated?
  • What are the tools you need in order to deliver code to production once per day?
  • Do trunk-based development contribute to better software delivery?
  • How do we create predictability in our software delivery?
  • What’s required for you to feel inspired by your work?

Hosting

  • Which is your favourite cloud provider and why?
  • What does cloud native mean to you?
  • What is your relationship with Kubernetes?
  • What is your thoughts on serverless?
  • How do you measure uptime of your services?
  • How do you collect telemetry from your services?
  • Mention a way to improve availability of your services
  • How do you monitor the services you have released?
  • What would make you choose on-prem hosting over cloud?
  • What is a good way of managing SSL certificates?
  • What aspects do we need to consider regarding data protection laws?

Agile Software Development

  • What is your opinion on Scrum?
  • What is your opinion on user stories?
  • What is the most common impediment for you to be able to do your job?
  • How do you estimate correctly?
  • Which meetings do you consider necessary?
  • How do we make sure to maximise customer value?
  • What roles do you have in your optimal development team?
  • What activities do you think a team should do to improve its delivery?
  • The team will not be able to deliver in time. What is your proposed solution?
  • What do you expect from a project manager?
  • What does it mean to have a good team culture?
  • How do you follow up on progress in a project?

Software Design

  • What is your opinion on Microservices?
  • What is your opinion on SOLID?
  • What is your view on ORM frameworks?
  • What does object oriented programming mean to you?
  • In what capacity do you use functional programming?
  • Where do you draw the line between refactoring and rewrite?
  • Where do you draw the line between buying software or building it yourself?
  • What is your perspective on “best practices”?
  • How do you document your software design?
  • What tools do you use to design your software?

Other

  • What technological advancement do you consider a fad, and expect to be gone in 5 years?
  • How do you think we’ll be writing software in the future?
  • What will be the major challenges for our industry moving forward?
  • What do you think will happen with Machine Learning and AI?
  • What technology would you like to specialise in?
  • What technologies would you like to learn to broaden your expertise?
  • If you were not a software developer, what would you be doing instead?
  • What is, your opinion, the worst mistake done in history of computing?
  • What do you think is the most important traits/qualities for a developer to have?
  • How do you contribute to a good team culture?
  • What is required for you to feel satisfied with your work?
  • What can we do to prioritise diversity and promote an inclusive environment?
  • How do you learn new skills?
  • What does ethical coding mean to you, and how do you write code responsibly?
  • Does a software developer have to know how a computer works?

Please don’t ask your candidate all 100 questions :) and make sure that you ask non development related questions as well. Happy hiring!

comments powered by Disqus