О работе в канадской продуктовой компании

Я уже писал про то, чем занимаюсь на своей канадской работе — халявная кола, раздавленное чувство собственной важности, и программисты-пенсионеры. Но с тех пор прошёл почти год, я поднакопил наблюдений, заматерел, получил беджик Senior девелопера и новых поводов материться. Итак, чем же отличается работа на канадскую продуктовую контору от работы в аутсорсинге в Минске?

  1. Обмен информацией

Непонятно почему, но мои канадцы совсем не умеют обмениваться информацией. В девелоперской команде всего двадцать человек, не считая шести заграничных автономных обормотов, и даже при таких скромных размерах, сидя за соседними столами, мы регулярно одновременно начинаем одни и те же задачи. О том, что фронт-энд перевели на TypeScript, местные фронт-эндщики узнали уже постфактум. Найти того, кто знает, как именно должна работать та или иная фича, вообще нереально. Мой самый страшный диалог с начальником:

— Слу, а как именно это должно работать?

— Я не знаю.

— А кто знает?

— Хез. Ты просто сделай.

В Минске информация шла к людям. Были слухи, обсуждения у кофеварки — все были в курсе основных вещей. Тут же новости уходят куда-то в космос, или застревают в чересчур молчаливых головах.

2. Принятие решений

Еще одна особенность конторы в стране вечной демократии — отсутствие демократии. Мы — маленький семейный бизнес, и важные решения вплоть до использовать ли LINQ в C# принимаются сверху. С одной стороны, бизнес всё еще живой, значит подход работает. С другой стороны, свои лучшие практики, последние прочитанные книги по технологиям и мнения о природе вещей девелопмент может засунуть куда подальше.

— Питер, я думаю, что держать запас статических IP адресов и динамически присваивать их серверам — отвратительная идея.

— Нет, так будет проще.

— Так в том-то и дело, что нифига не проще. Это дорого и требует создать посредника, который будет распределять адреса и избегать конфликтов.

— Паша, просто сделай, как я сказал.

И следующие три часа я представляю, как бензопила «Дружба» превращает его тщедушное тельце в удобрение для поганок.

3. Другой масштаб задач

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

Выбор задач тоже прекрасный. Хочется потренироваться поднимать и выключать кластеры виртуальных машин из командной строки? Этого есть у нас. Адвокаты попросили снабжать их статистикой в ближайшие пол года? Пфф, вот им маленькая виртуальная машина, которая запускает Nodejs приложение по расписанию, скачивает четыре гигабайта информации, анализирует их и выгружает результат юристам в Google Drive. По основному проекту разнообразия мало, но сопровождающие проекты — просто находка.

Ну и масштаб некоторых заданий поражает. Мелочь, но вот такой пример: нужно протестировать свой код, но это долго, и я не хочу занимать этим свой ноутбук. Как быть? Я делаю маленькую программулину, которая разворачивает восьмипроцессорную машину где-то в недрах гугла.  Та запускает тесты, отправляет мне письмо с результатами, и исчезает в небытие. Блин, я в две строки кода создал рабочую станцию где-то в штатах, а потом её «удалил»! Вот это колдунство!

4. Дежурства

Кроме задач, есть и другие отличия. Продукт-то свой, и за проблемы мы тоже отвечаем сами. Поэтому где-то раз в четыре месяца каждый разработчик заступает на неделю dev troubleshooting, и потом еще одну неделю on-call.

Траблшутинг значит, что все, у кого есть какие-нибудь вопросы по жизни или по продукту, идут к тебе.

— Слу, у заказчика эта лампочка загорелась, это нормально?

— Слу, а я не понимаю, как мы тут скорость рассчитываем..

— Слу, а ты не можешь спросить Сергея, как это должно работать? (А самому подойти, не???)

Моя неделя закончилась в позапрошлую пятницу, и за неё я вновь научился ненавидеть человечество. Там много дятлов, и половина из них работает у нас. Программировать вообще невозможно, у всех какие-то проблемы.

On-call — это дежурство. Есть полторы сотни серверов, и все загружены по самую макушку. Как только один из них начинает подтормаживать или вообще падает, звонят девелоперу разбираться. Доступность — 24 часа в сутки, 7 дней в неделю. Мой on-call заканчивается сейчас.

Выглядит это так. Пошёл я во вторник выгуливать ребёнка. Вышли в семь, а в семь тридцать мне уже звонят — что-то не так. Ну что же: «Сын, собираем лопатки, папа идёт работать».

Последний звонок был в 3 утра в субботу. В субботу!

Если траблшутинг разрушил веру в человечество, то on-call её окончательно закопал. Есть у нас служба поддержки. Вопреки стереотипам — офигенно умные ребята. В большинстве случаев они без чьей либо помощи могут заметить, что сервер тормозит, найти из-за чего, и тут же исправить. Половину их действий я даже не понимаю.

На этой неделе в поддержке дежурил дятел.

— Привет, я не смог обновить сервер. Посмотри пожалуйста. Вот описание ошибки.

—  Тут написано, что «не могу ужать файл, пока идёт резервное копирование». Ты резервное копирование выключил?

— Да.

— Сомневаюсь. Попробуй еще раз.

— Теперь всё работает.

Через день (в ночь с пятницу на субботу).

— Привет, я не смог обновить сервер. Посмотри пожалуйста.

— Тут снова написано, что шло резервное копирование. Я взял на себя труд проверить, и ты его не отключал. Отключи копирование, перезапусти процесс.

— Ой. Извини, что разбудил.

Блин, ты же больше чем я тут работаешь!

Вообще, такие недели — офигенная тренировка. У меня бы год ушёл на то, чтобы узнать столько нового о проекте. Но полезно или нет, как только я скоплю достаточно деньжат, то куплю дом семье, уволюсь, и уйду в тайгу в геологи. Подальше от людей, поближе к камням.

8 комментариев для “О работе в канадской продуктовой компании

    1. Если таун хаус, то есть. Вроде как стандартная цена за 3-bedroom — тысяч 600. Detached будут дороже.
      Можно посмотреть на границе в Бёрлингтоном — должно быть дешевле.

  1. Убейте меня, но это вынос мозга, ППЦ. Правда за нормальные деньги! Я, наверное, выбрал бы здоровье за пару соток баксов в РБ! Пашка — это мое субъективное мнение!

    1. Да лаааааан, всё не так жутко. Зато после такой школы жизни я буду крепче, чем гвозди для гроба 🙂

    2. Дежурство на escalations это нормальная практика в продуктовых компаниях, другое дело, что если дёргают сильно часто, и к тому же в нерабочее время, то что-то не так в консерваториях. Либо со службой техподдержки, либо с инструкциями для них, либо с продуктом.

      1. Я списываю это на то, что мы очень быстро выросли. Ритуалы еще не устоялись, куча нового народу, куча неструктурированной информации. Мы в один только девелопмент за последние пол года 6 человек взяли. Было 15. А ведь программеры — всего лишь один маленький отдел.
        Когда-нибудь всё станет хорошо. Или уйду в геологи. Вин-вин.

    1. Бонуса не будет если прикинуться дятлом. Тут в северной Америке принято премировать тех, кто хорошо (лучше других) работает. При этом не обязательно пахать 16 часов в сутки, можно 8, просто результат должен быть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *