Что вам нравилось на предыдущем месте работы?

Ответ

На предыдущей работе ценил несколько ключевых аспектов:

  • Культура кода: Работа в команде, где практиковался clean code, проводились тщательные code review и принимались взвешенные архитектурные решения.
  • Технологический стек: Возможность внедрять современные фреймворки (Combine, SwiftUI) в legacy-проекты, что улучшало код и пользовательский опыт.
  • Команда: Окружение сильных разработчиков, что мотивировало к профессиональному росту.
  • Автономия: Свобода в выборе инструментов и архитектурных подходов для решения задач.

Пример: Вместо монолитного кода мы внедряли модульную архитектуру с протоколами, что повышало тестируемость и переиспользуемость.

// Чистый, тестируемый сервис
protocol AuthService {
    func login(credentials: Credentials) -> AnyPublisher<User, Error>
}

// Вместо старого подхода
func login(email: String, password: String, completion: @escaping (User?, Error?) -> Void)

Ответ 18+ 🔞

А, ну вот, зашла речь про работу, где всё было не так уж и плохо, если честно. Я там, блядь, как сыр в масле катался, если отбросить всю эту корпоративную шелуху. Слушай, что там у меня было, а?

Во-первых, культура кода, мать её. Это не когда ты пишешь как бог на душу положит, а потом через месяц сам же в этом дерьме тонешь. Нет. Там был, блядь, clean code, настоящий, не для галочки. Code review — это были не просто формальности, а реальные баталии, где тебе могли такую архитектурную пиздюлину влепить, что неделю будешь думать, как же ты, мудак, до такого додумался. Но зато учишься, блядь, сразу. Решения взвешенные, не на коленке, а с прицелом на то, чтобы через полгода не пришлось всё переписывать, потому что «ой, а тут у нас новая фича не влезает, ёпта».

Во-вторых, стек. Представляешь? Легаси-проект, древний, как говно мамонта, а тебе дают добро внедрять Combine да SwiftUI. Это ж как глоток свежего воздуха в сортире общественного пользования! Не просто «работает и ладно», а реально улучшать и код, и то, что юзер в итоге пальцами тыкает. Чувствуешь разницу? Ты не латаешь дыры, а строишь, блядь, нормальную дорогу поверх этого старого просёлка.

Команда. Вот это, сука, ключевое. Окружение из сильных ребят. Когда все вокруг умнее тебя — это не повод бздеть, а повод, блядь, расти как на дрожжах. Не было этого унылого «и так сойдёт». Было «сделай лучше, давай». И ты сам себе не давал спуску, потому что стыдно было перед коллегами херню какую-то сдавать.

И, наконец, автономия. Мне не тыкали пальцем: «Делай так, потому что я так сказал». Была свобода. «Вот задача, вот проблема — решай, как считаешь нужным, предлагай инструменты, архитектуру». Чувство ответственности, блядь, конкретное. Не просто винтик, а инженер, ёпта.

Вот, смотри, на пальцах. Раньше было вот это вот, классика жанра для легаси:

func login(email: String, password: String, completion: @escaping (User?, Error?) -> Void)

Говнокод, который и протестировать-то нормально нельзя, и переиспользовать нигде. Сплошные completion-аддикции.

А мы приходили и начинали впендюривать нормальные, чистые, тестируемые штуки:

protocol AuthService {
    func login(credentials: Credentials) -> AnyPublisher<User, Error>
}

Всё. Красота, блядь. Понятно, изолированно, подменяется, тестируется на раз-два. И вся архитектура потом вокруг этого протокола как вокруг нормального фундамента строится, а не как вокруг говна с палками. Вот в этом вся и была, сука, разница. Не просто работу делать, а делать её хорошо, с умом. А это, как оказалось, дорогого стоит.