As I move forward in my career new jobs become more difficult to choose between. When I was starting out and for the first 8 years of my career I took the jobs that I could get that would keep me programming on the general technological path that I was on.
I am a job hopper, I only stay with a company for between 2 - 3 years. I think that I do this because after 2 years I get bored and unless there are new projects to keep my busy I no longer find work interesting.
Now that I am becoming more experienced it is more important for me to only apply for jobs that are interesting and will move my career and my skill set forward.
My problem now is that I keep finding jobs where the projects appear to be interesting during the interview but once I get in the company I find the development environment is sub-par and the development team is disjointed. I feel like I am asking the wrong questions during the interview process and don't know what to look for to make sure that the environment I will be working in will be a good one.
Now my question: For those of you who are senior developers what do you look for in a new company and development team?
I am looking for the key qualities in a company and development team that you look for when interviewing with a company. These qualities are the ones that would give you hints that the company will be a good one to work for.
Update: Here is a list of questions that I have created based on the comments left here. There are a ton more but this will be the start of my list.
Good characteristics in a new company:
- Ability to offer dependability and stability to an employee looking for a place to stay for the long term.
- Financially stable.
- What software and/or tools are used?
- What version control system is used?
- What kind of project manangement structure is used and what tools are used to maintain it?
- How do you ensure the quality of your products?
- How big is the team?
- What skill levels are people at?
- Where would you fit into the team?
- What was the turnover in your team and company in the last year? Why did people leave?
- How often and for what reasons is a person expected to work overtime?
- What kind of development environment does the company have? Flexible, ridgid, laid back, etc.
- Will my personal work practices be acceptable or will I be expected to conform to the rest of the team?
- What does the team do for learning new skills? Training? Education? Shows? Conferences?
- What was the last training that the company invested in for their developers?
- How is conflict between developers handled?
- How is conflict between developers and business users handled?
- Ask the questions and find out what they will admit to.
- If you can find an employee or former employee ask them to take the Joel test for the company.