Another friend of mine has started a job search. Obviously different people searching for a new employment opportunity have different needs, but one thing that can’t be said enough is that the interview process goes both ways. With that in mind, I’d like to present a list of possible questions that you might ask prospective employers as a way to weed out the bad fits:
1. What is a rough percentage estimate of time spent on: design/analysis, actual coding, testing, refactoring.? Are there categories I haven’t named that comprise a notable percentage? How much time is spent in meetings on average?
2. What is the testing process expected of the developer? What tools are used?
3. Are there automated builds? Automated testing?
4. What source control(s) are used?
5. What is the primary language, version of that language, and any related frameworks or libraries used?
6. What tools are provided for the developer (computer, monitor, software) and what, if any, flexibility is allowed with regards to that?
7. What general design principles, best practices, philosophies does the company consider very important? Thinking of things here like SOLID, DRY, use of design patterns, rules about length of methods, comments in code, etc.
8. Are code reviews a regular occurrence? Any other similar methods applied like pair programming?
9. Do you track bugs? How? How much of the developer’s time is spent on fixing bugs or on small enhancements? How much on brand new development?
10. How large is the team this developer will work on? What are the roles of everyone else on the team? Are there any others the developer will regularly interact with that are notable?
11. What documentation (outside the code) is the developer expected to contribute to and in what way?
12. If agile is the main project methodology, what does that mean to you? If not, what is the main PM?
13. How, if at all, does the company support professional development of the developer? (Time alottment for other projects a la Google time, books or other training budgeted or offered, certifications, etc.)
14. What support responsibilities will the developer have, if any? Will there be paging duty? Will there be off-hours (nights or weekends) responsibilities like builds or testing?
15. What are the regular working hours?
16.If travel is required, how much and how long?
17. Do the developers have quiet working conditions?
18. Is there anything important to know about the responsibilities expected of this position that hasn’t been touched on in our discussion, or the job description?
And here is one classic reference that helped me think about questions to ask companies: