- Leadership that understood the importance of taking the time to write good code.
- A team that was really interested in what they are doing and keeps up to date with new technologies and architectural patterns.
- Friendly, honest coworkers and managers.
- If something was needed to improve the work conditions, the management did not hesitate to invest into whatever was needed.