I bundled these up into groups and wrote some thoughts about why I ask them!
Onboarding and the workplace
- How long will it take to deploy my first change? To become productive? To understand the codebase?
- What kind of equipment will I be provided? Will the company pay/reimburse me if I want something specific?
- How will you know if I’m doing a good job?
- How often do two developers work together on a single task? Three or more developers?
- How many of the developers have been here less than 6 months?
- How many developers have been here 2 years? 4 years?
Development and emergencies
- How long does it take to do a complete deployment?
- What is a big pull request, in lines of code or files affected? How long is it open?
- How many repositories would I touch to make routine changes?
- How often do developers have to make simultaneous changes across repositories?
- How often do you have major outages? What constitutes a major outage for you?
- Do you have a defined process for handling an outage?
- Would I be expected to be on-call?
- What does your on-call process look like?
- About what fraction of their time are developers given (implicitly or explicitly) the freedom to explore or learn?
- How do you define success and growth for developers?
- How often do you do lunch and learns, or other semi-formal knowledge sharing?
- How often would my manager have 1:1s with me?
- What kinds of topics are usually discussed in 1:1s?
- Do you pay for conferences?
Project management and prioritization
- How do you balance shipping new features and maintaining the codebase?
- What's the lifecycle of new development, from somebody's idea to deployment?
- How do you track tasks? How are those tasks created?
- Do you do agile/scrum?
- How do you decide what to build?
- Do you have "swimlanes" in your task tracking? What are they called?
- How do you know when something is done?
- What project management software do you use?