Here are questions I usually ask as a candidate for a software engineer position.
- How do you plan/estimate effort?
- How long are the sprints?
- How often do you release?
- How long does it take to get from commit to qa/production?
- What is your code coverage?
- What kind of tests do you write? Unit? Integ? Func? End-to-end? What style do you use? TDD? BDD? What frameworks are in use?
- What dependency management tools do you use? Would you be able to switch easily or do you have custom setup involved in build process?
- How long does it take to setup local environment? Up and running in 2h? Commit on first day?
- What frameworks/libs do you use? What versions?
- How do you document your code?
- What is version of technology you use (Java/PHP/Go etc.) in production environment?
- What storage engines do you use (SQL/No-SQL)?
- Do you do merge requests and code review? How many people must accept the merge request to push it to production?
- Where do you deploy your project? Cloud/your own infrastructure?
- Monolith, microservices? How do you plan to evolve your architecture in future? What modules are there In the project? How are they connected? How many microservices are present? How are they connected?
- How big is the code base? What languages does it consist of(%)?
- How old is the code base? What is the estimated amount of maintenance vs new features development time?
- What version control system do you use? (git/hg/svn)
- Who deploys to production? Devs/Ops? Do you do infrastructure as code (terraform?)?
- What methodology do you work with? Scrum, kanban etc.? Do you do Pair Programming? TDD?
- Build tools? Continuous integration? How long is the CI project? Continuous deployment? Do you use any kind of release fallback when there are problems with new version? Canary deployment?
- What tools are you providing? IntelliJ? Jrebel? YourKit?
- Are domain experts available on premise? How can I get a business information when I need it?
- What knowledge center do you use? Wiki/Confluence?
- Are There any restrictions regarding day-to-day work on the project? Specific operating system?
- How do you fight your technological debt?
- Do you use APM?
- Do you collect metrics from your apps? How?
- Do you have centralized logging setup?