Системный дизайн — как собрать из сервисов, баз, кэшей и очередей систему, которая выдерживает нагрузку, переживает отказы и развивается. На собеседованиях middle+ почти всегда есть секция «спроектируйте …».
Структура ответа на секции: требования (функциональные и нагрузочные) → оценка нагрузки → высокоуровневая архитектура → модель данных и API → узкие места и масштабирование → отказоустойчивость → компромиссы.