1. Language is a tool
  2. Principles understanding is more important than knowledge of how to use tools
  3. Code is not the goal
  4. Deleting code is better than writing it
  5. Design patterns are not programming principles
  6. Every solution has its pros
  7. Readability of the code is more important than its performance
  8. Level of thinking defines level of solutions
  9. The purpose of abstractions is to manage complexity
  10. Side effects require isolation
  11. Mutability is a necessity and the root of all troubles
  12. Tests instill confidence. Right tests make you faster
  13. Operations is a part of the system
  14. Uniformity is better than local optimizations
  15. Your code is not your product. Good code != good product