Knowledge of software architecture principles, patterns, styles, and practices, including layered, service-oriented, microservices, event-driven, modular, distributed, and component-based architectures. Knowledge of open systems architecture, modular open systems approaches, service-oriented architectures, APIs, containerization, cloud-native technologies, or distributed computing.