Loading Memory Optimization Performance

Should you use ScriptableObject to store settings in Unity?

While passing technical interviews the topic of using ScriptableObjects was raised a lot of times, but not all studios use them or even know about its advantages. In this post I would like to share reasons why I use it myself and would be happy to discuss additional pros and cons in the comments.
TL;DR: Use ScriptableObject when you need to store and customize properties of your scripts.