Как по мне разница только в одном:
Джун пишет код так, чтобы решить поставленную задачу. Сеньйор пишет код так, чтобы решить текущую и все последующие задачи.
А уж как писать гибкий и легко масштабируемый код инфы полно. Скажем вот или вот
Программист, если он программист, всегда пишет код так, чтобы решить текущую и все последующие задачи.
От уровня меняется только количество (критических?) промахов с оценкой этих самых последующих задач и подходами к их решению. :)