• Designing modular applications
  • Implementing reusable components