Я работаю в компании из списка Fortune 500, занимающейся разработкой технологий веб-инфраструктуры. Компания, в которой я работаю, занимается транспортировкой, и ее бизнес-цель состоит в том, чтобы товары двигались круглосуточно, без выходных, 365 дней в году. Я всего лишь один из нескольких сотен инженеров-программистов.

Я работаю в группе хостинга серверов, где мы управляем тысячами серверов и предоставляем разработчикам платформу для запуска своих приложений. Код, который я разрабатываю, напрямую не поддерживает работу продуктов, но я все равно люблю просыпаться и работать.

TL; DR: Приятно решать проблему наилучшим из возможных способов с командой крутых людей.

  1. Команда. Моя команда заботится друг о друге. Мы выделяем время (иногда даже часы), чтобы помочь друг другу. Мы всегда даем возможность критиковать друг друга, но в положительном ключе. Мы постоянно улучшаем код друг друга. Мы также встречаемся каждое утро, чтобы обсудить, что мы делали накануне и что мы будем делать в этот день.
  2. Качество нашей работы. Приятно сесть и решить проблему правильно. Приятно изучать новое и реорганизовывать старый код, который неправильно решил проблему. Когда мы садимся решать проблему, мы стараемся выбрать лучшее из возможных решений и реализовать его. Чтобы сделать что-то безупречное, может потребоваться еще два дня, но в конце концов оно того стоит - и мой босс это понимает. И если мы обнаружим, что допустили ошибку, мы всегда вернемся и исправим ее.
  3. Разработка через тестирование. Поскольку все другие разработчики в организации зависят от нашей инфраструктуры, наш код должен быть идеальным. Чтобы убедить себя в том, что наш код будет работать, нужно написать МНОГО тестов для нашего кода. Фактически около 50% времени кодирования тратится на разработку тестов.
  4. Огромная, но чистая кодовая база. У нас есть несколько сотен тысяч строк кода, но работать над этим не кошмар. Это связано с несколькими практиками: TDD, написание крошечных модулей (например, 1 класс java - не более 300 строк кода, 1 функция - не более 20 строк). Мы используем правильные шаблоны проектирования. Мы используем правильные алгоритмы и структуры данных.

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