Здравствуйте,
не совсем понял ваш вопрос. Помоему вы решаете что-то между full-stack девелопером и уровнем квалификации.
Фул стэк - это "умею всё", но есть ньюансы. Главное, что вы должны понимать, что для фул стэка ограничения тоже есть, но один принцип остаётся везде - это умение учиться и учить новые вещи.
Не боятся проблем. Знание более чем одной технологии Вам позволяет решать больший спектр задач.
Уровень квалификации, юниор, мид, сениор, тим лидер, итд... Это моё суждение:
- юниоры в основном учатся читать код, писать код, и умеют решать задачи в среднем в 3 раза медленнее (сейчас это лишь грубое предположение). Их основная задача расти и становиться лучше.
- миды - они, в основном "главная рабочяя сила", от которой ожидают уже результаты, они хооршо пишут код, они умеют читать код, но от них не не кладут ответственность за продукт, они должны решать технические задачи
- сениоры - тут у все понимают их по разному. Но в моём понимании: ответственность за продукт, и качественное решение за разумный срок. От сениоров ожидается, что они будут задавать технологические направления, как продукт в конечном итоге будет вылядеть по технической стороне.
- тим лиды - это не обязательно технологическая позиция, это скорее менеджер, который управляет тимой, расспределяет рабочие ресурсы, он эдакий мост между разработчиком и менеджментом.
В мелких компаниях эти роли часто сливаются в одно целое и кладётся всё на одного-два человека.
Отдельным пунктом стоит способность комуникации между людьми:
- очень часто программист не может расти выше из-за неспособности договариваться с подчиненными, колегами или начальством. Это надо хорошо понимать и учиться общаться. :-)
А теперь коротко про "хорошего" фул-стэк программиста:
- нужен тупо опыт. Вы никогда не будете знать правильное решение без наработанного опыта.
`Что умеет ас SQL в отличие от "среднячка"` - Он умеет выбрать правильную БД для проекта (для этого надо знать не только MySQL), он пониамет как база данных работает, умеет правильно создать структуру таблиц, он разбератся в функциональном программировании на уровне БД, он знает как решать медленные запросы в БД, он знает когда правильно использовать триггеры. Он должен знать как работает БД в корне, что такое join и знает разницу между hash join и block nested loop, он умеет дебажить проблемные ситуации, например deadlockи. итд...