Nothing quite beats an on-site pair programming session in my opinion. Given the logistical hurdles that need to be overcome for this however, led me to collate a list of interesting questions that should be asked at the end of a technical interview to get the most information regarding the job on offer.
The questions given are in no particular order and may also be woven into conversation depending upon the interview.
- 1. What does your technology stack look like?
- This allows your to figure out how up-to-date the firm is with technology. Up-to-date here is entirely your definition :)
- 2. What does your architecture look like?
- This is an important follow-up to the above question and allows you to figure out how good the interviewer is at big picture analysis. Interesting discussions may be had regarding certain pieces time permitting.
- 3. What does your development lifecycle look like and how is requirements engineering done?
- It seems like everyone is doing agile development with bi-weekly sprints but what is more interesting is how much face-time do developers get with users and how much decision room do they have.
- 4. What does your testing / QA process look like?
- Beware of anyone not running CI infrastructure with an automated build process. Automated end-to-end integration testing before feature merge is a sign of a good quality team. Automated stress and infrastructure failover testing including db restoration are all signs of a top notch team.
- 5. What is your team structure like?
- 3 people, 6 people, 23 people including the CTO, just you? It's good to get a feel for how many people will you be interacting with on a daily basis.
- 6. What is your production infrastucture like? How much control do developers have over it?
- Automated production deployment from QA should really be standard. Having access to production logs and anonymized production data is very useful. Having production accounts and access to the application as a user is excellent.
- 7. How much support do you expect developers to do regarding hours and availability? Do you have a dedicated support staff?
- This is a really important question especially in bigger organizations such as banks where you might be required to be on-call for applications that your team owns.
- 8. Why did you choose technology X? Why not Y?
- This is a great question to get into a discussion with your interviewer and get to know their opinion on tech topics if you can engage them.
- 9. What sort of software do you use?
- Source-control (just walk out if they are not using any), Issue tracking, Analytics (big plus if they have analytics tracking), IDEs, developer machines, any other software that might be pertinent.
- 10. What kind of training do you offer employees?
- Probably the only question you will find on a generic interview preparation page :)
Note: there exists a Joel Test to determine the quality of a software team and there is some overlap here but I choose to frame my questions more open-ended to create a discussion space.
I wish you all the very best in your interviews and I hope that you found these useful. I am always happy to get your feedback - feel free to get in touch!