Как справиться с легаси-депрессией?
Перестаньте воспринимать свою работу как "работа с легаси кодом" и почувствуйте себя разработчиком. Написать проект с нуля каждый дурак сможет, у большинства по прошевствии года разработки выйдет примерно то что вы и описываете. Тут много ума не нужно, что бы делать проект с каждым днем все хуже и хуже.
У вас же есть возможность получить более интересный опыт - ежедненное улучшение, каждый новый день - чуть меньше говнокода, анализ и исправление чужих ошибок (это очень полезный опыт в плане развития самого себя, ибо в чужом коде проще искать недостатки а зная их мы не будем так делать у себя в коде).
Контроллеры на 2к строк
Так это же замечательно! Это значит что вам попалась категория говнокода из разряда "просто тупое дублирование". Такой код весьма легко рефакторить, а значит уже не нужно плакать. В идеале перед рефакторингом было бы неплохо покрыть изменяемый код тестами уровня приложения, просто e2e тест который будет за вас автоматически проверять не сломали ли вы чего-нибудь.
А далее, начинаем со структурных изменений (выносим дублирование в приватные методы, потом в сервисы), не меняя код, потом начинаем аккуратненько добавлять тестов и делать код чище. Причем все это можно разнести по времени, закладывая 30% времени разработки на устранение технического долга. типа по 2 часа в день на то что бы сделать код лучше. Конечно же вы должны еще владельцам проекта эту мысль донести, что мол инвестировав сейчас n% времени мы получим в долгосрочной перспективе профит в виде сокращения количества багов и как следствие улучшении процессов, предсказуемости и т.д.
написанный школьником js
А вот это уже не конструктивно. Если там просто куча jquery-лапши, то это тоже рефакторится. Опять же начинаем со структурных изменений а там уже не так больно.
хранимки с селектом и адские джойны
А вот базу рефакторить будет чуть сложнее. Я бы для начала избавился бы от прямой работы с базой и спрятал бы весь sql и вызовы всех хранимок в коде нашего приложения (table gateway, row gateway или даже лучше data mapper, зависит от текущей ситуации). А затем уже можно опять же постепенно улучшать структуру базы данных, избавляться от хранимок и т.д.