Software-Engineering Design Patterns for Machine Learning Applications | Synapse