- The code have to work
- The code has to be efficient (balance resource usage)
- Simple abstractions are the key of readability
- Pick needed features from each language used and stick to them
- Tests, tests and again, tests
- Use static analise tools
- Document external API and features (API Reference), describe internal structure
- Tool is a dependency
- Every external dependency needed for project should be specified with detailed informations of origin
- 3rd party infrastructure dependencies should be wrapped in internal API
- One or more runtime debugging solutions like logging, metrics, traces etc. should be implemented