Не инженер, если просто закрываешь таски
Термин «инженер» со временем стал размытым. Часто им называют человека, который просто стабильно закрывает задачи в {task_tracker_name}. Грань между senior разработчиком и инженером проходит там, где человек начинает видеть за кодом систему и деньги бизнеса.
TL;DR
Инженер не боится говорить «нет» лишним фичам, думает о рисках, стабильности и цене решений для бизнеса. Чем выше предотвращаемые риски, тем выше ценность и зарплата.
p.s можете скипнуть пост, далее тоже самое но чуть подробнее
ТЗ — иллюзия определенности
Senior разработчик существует в мире определенности. Его работа — трансляция требований на язык машины. Если в требованиях заложена логическая бомба, разработчик её реализует.
Инженер иногда решает проблему бизнеса вопреки "хотелкам" самого бизнеса. Проблема в том, что бизнес часто сам не знает, что ему нужно. Умение сказать «нет» бессмысленной фиче — это скилл, который экономит компании сотни тысяч долларов на поддержку того, что вообще не должно было существовать.
Часто лучшее инженерное решение — не писать код вовсе, а изменить процесс или отказаться от фичи, если она противоречит физике системы.
Про техдолг и какой инструмент "круче"
Senior разработчик часто ищет "серебряную пулю" и заложник "лучших практик". Он будет пихать clean architecture и паттерны в код, который проживет недолго или вообще не дойдет до продакшена. Формально всё правильно, но по факту — лишняя сложность без реальной ценности.
Бизнесу всё равно на чистоту кода по книжке и на самую модную либу с красивым лендингом. Бизнесу важно, чтобы новые фичи доставляли как можно быстрее не ломая старые, вопрос масштабирования и целостность данных.
Любая написанная строка кода — это технический долг. Инженер думает, как минимизировать ущерб от внедрения решения и честно объясняет бизнесу, за что придётся платить. Чем более дорогие и фатальные риски вы способны контролировать, тем выше ваша ценность.