Something you can always count on to happen at the end of your Software Engineer interview - both technical and non-technical rounds - is for the interviewer to ask you if you "have any final questions?".
This question actually isn't a real question at all - candidates are generally expected to ask questions. As an interviewer myself, candidates who don't have any questions might come off as less interested in the role.
Besides that, the questions you ask reveal what you care about. If asked well, this can be a very predictable opportunity for you to leave a good impression while also knowing more about the role (including uncovering potential red flags).
Here, I present questions to ask at the end of your software engineer interviews, for every purpose:
## Best questions to ask for knowing more about technical work
- What is the most costly technical decision made early on that the company is living with now?
- What is the most fulfilling / exciting / technically complex project that you've worked on here so far?
- What has been the worst technical blunder that has happened in the recent past? How did you guys deal with it? What changes were implemented afterwards to make sure it didn't happen again?
- What is your stack? What is the rationale for/story behind this specific stack?
- Does your team use Agile or Waterfall dev methodology and why?
## Best questions to ask for knowing more about the role
- What qualities do you look out for when hiring for this role?
- What concerns / reservations do you have about me for this position?
- What does a typical day look like in this role?
- What would be the most important problem you would want me to solve if I joined your team?
- What are the strengths and weaknesses of the current team? What is being done to improve upon the weaknesses?
- What resources does the company have for new hires to study its product and processes? Are there specifications, requirements, documentation?
- What would I work on if I joined this team and who would I work most closely with?