12 Meta Rules

  1. Understanding the problem domain is more important than understanding the solution domain
  2. Software development is “anything goes”
  3. The best software methodology is no methodology
  4. Small is beautiful
  5. Separate control plane from data plane
  6. Orchestrate applications using messaging
  7. Debugging a single-machine app is not the same as debugging a distributed system
  8. Leave building engines to the experts
  9. Programming is either push (reactive) or pull (imperative)
  10. Software is more about politics than it is about technology
  11. Parallelism is more important than concurrency
  12. The only antidote to vendor lock-in and monolithic software is do-it-yourself.