Из статьи, на которую я ссылался выше:
Джун: Минимальный юнит, способный писать код. Знает синтаксис языка и основы программирования типа циклов-условий-массивов. Если дать ему задачу и объяснить что и куда программировать — справится.
Миддл: Разработчик, который в принципе может решить любую задачу самостоятельно. Чаще всего уже знает под десяток языков, перепробовал сотню либ и фреймворков и написал пять своих. Отличный юнит в любую команду, потому что кодить уже умеет, а по зарплате пока не зажрался. Однако, по причине пока еще небольшого опыта, отличается от сеньора уровнем понимания задачи. То есть миддл почти на любую задачу говорит «да, я могу это сделать», но пока не может сказать «нет, давайте не будем так делать». (Или по картинке: Сделай это, вот идеи как подступиться)
Сениор: Последняя стадия эволюции программиста. Полностью независимый юнит, который может решить любую задачу, даже поставленную неточно, самостоятельно изучить любую технологию, найти и запрячь нужных людей в компании сделать нужные ему вещи. Понимает процессы и умеет их нарушать, если так будет выгоднее всем. В общем, идеальный автономный юнит. (Или по картинке: Сделай это заебись. Скажи, когда будет готово)
Тимлид: Тот, кто управляет всеми тремя, но при этом еще и занят организационными вопросами в команде типа найма-увольнения, квартальных отчетов, ретроспективами, анализом эффективности, установочными митингами и еще сотней задач, в зависимости от компании. В оставшееся время пытается писать код. (Или по картинке: тот, кто говорит Сделай это)