Embedded software in the car is becoming increasingly complex due to the growing number of software-based controller functions and the increasing complexity of the software itself. Model-based development with Simulink combined with TargetLink for automatic code generation helps significantly to improve the quality of the embedded software. The development of large-scale Simulink models in distributed teams is a challenging task, especially when developing safety-critical software that must fulfill requirements stated in the ISO 26262  safety standard. In practice, many questions on how to avoid the pitfalls of distributed model-based development remain open, such as how to define an appropriate model architecture, handle model complexity, and achieve compliance with ISO 26262.The intent of this paper is threefold. Firstly, we summarize those requirements of ISO 26262 that are relevant for developing complex software in a distributed environment. Secondly, we provide best practices for distributed development of large-scale controllers with MATLAB, Simulink, and TargetLink in compliance with ISO 26262. We address topics such as functional partitioning of complex units, defining and using interfaces consistently, avoiding long processing times during code generation, as well as aspects of testing and software integration. Finally, we demonstrate how to apply model metrics to deal with Simulink model complexity and show how complexity can be improved.