Most interviews do not have enough time to assess for culture fit (from the candidate), so ask for time. Any company that has a good culture will be happy to give you an hour to ask questions, maybe more. This might be only at the offer stage, but by that point they are invested enough that there's no reason other than hiding a bad workplace to not give you that time.
Treat it almost like an interview. Write up questions, think about the questions for a while, think about what a good and bad answer looks like. They're probably going to be pretty open ended, and the conversation may be somewhat circuitous, but they will be valuable.
Questions I like to ask are things like:
- Walk me through the process from ideation, spec, code, testing, deployment, maintenance. Who owns each part? How long does each part take? Which people/roles, processes, tools/tech are involved?
- If you left, what would you want to take from this team to your next? What does the team do better than others?
- What do you think the team needs to improve at? What does it do less well than other teams you've been a part of?
- How does change happen? What mechanisms do you have for change? Can you give some examples of change happening?
- How does the team feel about... Code Review (or anything else you care about)
In addition, same set of questions can also be asked to people who've recently left the organisation.
I'd use the following criteria to filter ex employees:
- Reliable 1st/2nd level connections
- Folks who have shown stability in the past (generally stick to jobs for > 2 years)
Obviously, they'd come with biases. But, talking 2-3 people should also help reliably gather broad culture patterns.
Should avoid listening to evidently disgruntled folks.
Treat it almost like an interview. Write up questions, think about the questions for a while, think about what a good and bad answer looks like. They're probably going to be pretty open ended, and the conversation may be somewhat circuitous, but they will be valuable.
Questions I like to ask are things like:
- Walk me through the process from ideation, spec, code, testing, deployment, maintenance. Who owns each part? How long does each part take? Which people/roles, processes, tools/tech are involved?
- If you left, what would you want to take from this team to your next? What does the team do better than others?
- What do you think the team needs to improve at? What does it do less well than other teams you've been a part of?
- How does change happen? What mechanisms do you have for change? Can you give some examples of change happening?
- How does the team feel about... Code Review (or anything else you care about)