Responsibilities(or Roles) are different from Actions. Several actions can be performed to fulfil a responsibility(or role). The class should have one responsibility(SRP) but its functionality that fulfils that responsibility should be open to extend(OCP) SOLID Single Responsibility - A class should have a single responsibility Open-Closed - This principle aims to extend a Class’s behaviour without changing the existing behaviour of that Class. Liskov Substitution - If S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program. I — Interface Segregation D — Dependency Inversion - High-level modules should not depend on low-level modules. Both should depend on the abstraction. Abstractions should not depend on details. Details should depend on abstractions. HLD Netflix consume 15% of world internet traffic Sort list of strings which is of size Peta Bytes of dat...