Мидл -- это полноценный разработчик, решающий любую задачу:
- укладывается в бюджет (время)
- полноценно рулит своей разработкой (архитектура, хороший код)
Джун -- тоже уже разработчик (а не стажер как некоторые любят подсунуть), так или иначе решающий любую задачу, но задорого по времени и усилиям (из-за недостатка опыта и знаний), как правило берут их, чтобы они втянулись в проект и будучи втянутыми -- становились полноценными разработчиками именно этого проекта. Достаточно ценный юнит -- на него сбрасывают всю шелуху по работе, он втягивается в проект долго и под присмотром как правило и потом хорошо его знает, пишет много кода и недорого стоит... в некоторых проектах может закрывать полный спектр задач.
Сеньор -- это уже монстр, который рулит вектором выбора технологий (как правило в больших командных проектах, тк в маленьких я тоже выбираю технологии :) или монстр, который может допилить приложение для языка, не просто фигачить как псих на Symfony, а еще и допиливать сам Symfony и плюс свои пару крутых опенсорсных решения.
Также сеньор может быть мидлом, например в крупных игровых студиях сеньоры сидят и пилят крутую физику для игр...
Вообще понятия сильно размазаны... разделения только по зп и требованиям в объявлении есть, учитесь и работайте! (и мы будем :)