Требования к разработчикам разнятся от компании к компании. По моему мнению, миддл может сделать сам то, что джун еще не может, а сеньор уже не хочет. Если конкретизировать список задач, которые делают разработчики разного уровня, то ситуация будет следующая
Junior
- делает несложные задачи, связанные с CRUD
- с помощью ментора закрывает задачи средней сложности
- наблюдает за процессами в команде. Допускаются ошибки
- изучает язык программирования вглубь
- изучает новые подходы к разработке
- с помощью ментора пишет тесты
Middle
- делает задачи средней сложности
- делает сложные задачи, консультируясь с тимлидом/сеньором
- следует процессам разработки
- пишет оптимальный код, который требует минимум доработок
- пишет тесты
- способен объяснить в тексте/схеме другому миддлу то, что он хочет реализовать в коде
- способен поставить задачу джуну в Jira
- [Опционально] помогает джунам с его задачами. Менторство
- [Опционально] помогает другим миддлам в их онбординге
Senior
- делает задачи любой сложности, консультируясь с сеньорами/архитекторами