A partial list of things that I'd like to know before starting a job:
1. Does the product/project have an owner who looks at it from a user standpoint?
- How about access to feedback from users?
- Are there specs?
- How is it determined that something you work onis a good fit?
2. Quality of code and the dev practices.
- Ideal: I'd get a copy of the code, set up a dev environment, examine and run the tests, write in a new mini-feature, deploy to a testing env, and have someone show me a full live deployment.
- Is there a sense of a cohesive architecture, or at least some effort and interest towards one?
- How do I know they're not lying about their "Joel test" results?
3. Does the team have time to perform proper maintenance of projects? (e.g.: vulnerability discovered, core third-party library updated, etc.)
- Does the company spread itself over multiple projects or forks so they don't all get the attention they deserve?
4. How easy is it for developers to touch the ops process?
- Ideal: I feel dev/ops should have a large amount of crossover. A specialization sweet-spot keeps everyone working most efficiently, but I don't see "writing a platform" as entirely distinct from "running the platform and ensuring its health".
5. How do you determine there is a good path for career growth?
- If someone is a key employee for a long time, do they get recognized for it, financially and role-wise?
I've worked at some places with skilled teams that are unprofitable and unsustainable, and some that are profitable and sustainable, but are poorly managed and are not fun to work at.
How can I figure out that a place is somewhere I'd like to work before saying "yes, I will accept your offer"?