Too Long; Didn't Read
The same developer can be qualified at one company as a senior, and at another as a middle, and vice versa. Junior solves simple technical problems with a clear and detailed description. Senior can solve architectural problems if there is no architect or tech lead on the project, who is essentially the same senior, only in addition he is responsible for the entire architecture and technological landscape of the project. Mid-Level developers solve business problems with more general formulation. Senior developers can also decompose tasks and give some of them to middles or juniors.