Былина о том, как я в стартапе работал

в 10:37, , рубрики: Блог компании ua-hosting.company, Карьера в IT-индустрии, команда, опыт, Программирование, Развитие стартапа, стартапы, удаленная работа, удаленное управление командой, филиппины

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

Былина о том, как я в стартапе работал - 1

Не буду утомлять Вас былинным языком. В этой статье я хочу рассказать о своём почти 3-летнем опыте работы в небольшом иностранном стартапе, о подходах к решению задач, управлению персоналом, управлению проектом, о моих личных впечатлениях и выводах. Перефразируя известную песню, о стартапах немало статей сложено, я напишу ещё одну. Зачем? Показать основателям стартапов, как делать не стоит, а сотрудникам — в какие моменты пора задуматься о дальшейших перспективах и вообще как беречь себя. Также по очевидным соображениям, я не буду озвучивать название самого проекта и не особо буду вдаваться в цифры. Статья вышла длинной, с плавными перетеканиями из деталей проекта в личные переживания. Да простит меня читатель.

Как всё начиналось

Не вдаваясь в причины, в какой-то момент я ощутил потребность в смене места работы. Эксперимента ради я искал именно удалённую работу и именно в иностранной компании. На Upwork, который тогда ещё был oDesk, мне попалось объявление о наборе в молодой, но амбициозный проект, ориентированный на рынок США. Сулили интересные задачи, да и зарплату предлагали повыше. На тот момент меня не смутило то, что акцент был сделан на сотрудников из развивающихся стран (где, соответственно, вполне можно платить меньше). А, возможно, должно было. Стоит отдать им должное, впрочем. На соответствующей страничке сайта они даже не поленились сделать небольшой конвертер, который переводил предлагаемую ими ставку на валюты разных недоразвитых стран мира, среди которых в одном ряду с Украиной и Россией стояли Пакистан, Индия, Непал и прочая экзотика.

На мою заявку откликнулись довольно быстро и назначили мне первую часть собеседования, где, помимо общих вопросов была одна задачка, решение которой нужно было предоставить с помощью InterviewZen (полезная штука, если Вам нужно отследить ход мышления интервьюируемого, кстати). Если вкратце, был дан массив значений колебаний курса валют в небольшом пределе, общий разброс < 0.1. Нужно было отнормировать и построить график колебаний так, чтобы их было видно.

Как месяцами позже признался основатель, это был первый день найма, и в течение него он почти успел потерять веру в человечество. Счёт проходивших интервью уже шёл на десятки, но я был первым, кто её решил. Либо в целевых странах всё очень плохо с математикой и алгоритмами, либо просто всё плохо было у тех, кто был согласен работать за предложенные деньги, но факт остаётся фактом. По его опыту десятки и десятки человек, немало из которых занимались веб-программированием годами, не были способны решить несложную задачку.

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

Общие условия работы

В отличие от некоторых стартапов, о которых я слышал, и где всё держится на ура-идиопатриотизме из серии «наша идея супер крутая, мы точно будем стоить как два гугла, так что пока потерпите вообще без зарплаты», оплата труда тут предполагалась. Более того, она примерно соответствовала рыночной оплате труда джуна или слабого мидла на PHP со знанием английского как минимум в Украине (предполагаю, и в других странах, где производился поиск сотрудников). Но были нюансы. В частности, мы были подрядчиками (contractors). Соответственно, мы были сами ответственны за уплату налогов, нам не полагалось оплачиваемых больничных и отпусков, да и количество неоплачиваемых ограничивалось до 2 недель в год.

Вся работа велась удалённо, график работы был свободным. Было очень желательно, чтобы моё рабочее время максимально пересекалось с остальными, но они и так работали весьма немало, так что это было не так уж сложно сделать. Единственное требование — 40 часов в неделю согласно трекеру активности. А это значит, 40 часов честной работы. Трекер фиксировал практически всё, что можно: скриншоты, снимки с вебки, активность клавиатуры и мышки, посещаемые сайты. Естественно, за отлучение на 5 минут в туалет или за кофе никто не расстреливал, но длительные промежутки безделия легко фиксировались и совершенно не поощрялись. Люди, не способные организовать свою работу, достаточно быстро отсеивались и были отправлены смотреть за далью даль.

Также, как и полагается стартапам, мне был предложен опцион на акции. Мне полагалось порядка 0.15% от общего пулла акций, размазанные на 4 года. Первая четверть мне полагалась после первого года работы на полную ставку, с дальнейшим ежемесячным пропорциональным доначислением. Зафиксировано это всё было только в Google Sheets и в подписанном в электронной форме договором.

Чем отличается электронная подпись от цифровой?

Учитывая уровень развития электронного документооборота как такового в моей уже бывшей родине, только во время работы я узнал разницу между понятиями «электронная подпись» и «цифровая подпись». Если вкратце, то:

  • цифровая подпись — понятие из области математики, программирования, криптографии и т.п., способ подтверждения аутентичности подписывающего с помощью всех этих ключей, сертификатов и прочего;
  • электронная подпись — понятие юридическое, обозначающее подписывание чего-либо в электронной форме. В зависимости от законов страны/региона это может быть даже обычная Ваша рукописная подпись, нарисованная мышкой на экране, безо всяких цифровых изощрений.

И да, в некоторых случаях в США обычный PDF с рукорисованной подписью будет вполне легальным документом, признаваемом в суде. Т.к. не с нашим менталитетом такие доказательства принимать, в наших реалиях оба понятия обычно идут в неразрывной связи, а потому могут казаться взаимозаменяемыми.

Совет владельцам. Предлагайте даже наёмным сотрудникам доли в проекте. Это всё-таки стимулирует, т.к. сотрудник начинает работать хотя бы на 0.1% на себя, а не только на зарплату. На эту тему не раз писалось на хабре, в том числе и юридическая сложность практической реализации в России и Украине. Но если Вы делаете реальный проект, а не играетесь в стартап и/или распиливаете деньги инвесторов, уж постарайтесь. Лояльность хороших, проверенных временем сотрудников, ещё пригодится.

Первые месяцы

Когда я пришёл на работу, мне сказали, что мы готовимся к публичному запуску продукта. Предположительно он должен был состояться месяца через 3 или около того. Эта деталь будет иметь значение в будущем, а пока основное значение имело — какая задача станет моей первой в проекте. Общая политика была такова: давать новому сотруднику делать то, что не жалко будет выкинуть, если он налажает. Т.е. некая новая функция из дорожной карты проекта.

И ею стала интеграция с популярными (и не очень) онлайн-системами бухгалтерского учёта. Задачи ставились без конкретных детализированных спецификаций. Такой подход нравится не всем, конечно, но лично мне он по душе, т.к. бросает вызов и даёт простор для творчества. Ведь предстояло не только разобраться с несколькими API и научиться постить туда данные. Нужно было понять основы бух.учёта, основы налоговой системы США, продумать структуру на нашей стороне, понять, как и какие данные стоит постить и т.п.

Совет сотрудникам. Если Вам нравится только какой-то один этап разработки ПО (например, только само написание кода, только тестирование или только проектирование) — Вам лучше пройти мимо стартапа. Там обычно нужен и швец, и жнец, и на дуде игрец.

На полную реализацию первой интеграции (модель, её проверка с бухгалтером из США, воплощение в коде, вылизывание, юнит-тесты) ушло около месяца. Дальше дело пошло веселее, естественно, т.к. был готовый образец для последующих реализаций.

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

База кода

Всё начиналось с небольшого семейного бизнеса — колл-центра на Филиппинах. И софт первоначально писался именно для учёта и контроля сотрудников колл-центра. Собственно, отсюда вырос упомянутый выше мониторинг, так необходимый, когда нанимаешь филиппинцев. Есть у них такой своеобразный подход к работе, то ли собственный, то ли унаследованный со времён испанской колонизации. Как кто-то красиво описал его, «филиппинцы слишком ценят своё личное время, чтобы работать качественно».

Суть в том, что код изначально писался под внутренние бизнес-потребности и процессы. В какой-то момент у них назрела мысль, что получается весьма неплохо, и можно было бы превратить продукт для внутренних нужд в SaaS. Потенциальных направлений было несколько: учёт рабочего времени, расчёт зарплат и налогов, подготовка налоговых форм (оно же — payroll), онлайн-решение для колл-центров (телефония).

Код писался уже минимум лет 7 к тому времени, как я присоединился к компании. Т.е. началось всё в те времена, когда популярные нынче фреймворки были ещё на своих ранних пост-эмбриональных стадиях (и jQuery тоже). А объектно-ориентированное программирование в PHP было скорее уделом продвинутых, и многие по-прежнему спокойно обходились процедурным спагетти-кодом с кучей include, require, require_once. В таком виде я и застал код проекта: спагетти, почти никакого ООП, переменные и функции, возникающие из ниоткуда и исчезающие вникуда, почти никаких юнит-тестов, голый JS на фронтэнде. Иногда это гордо называлось «our own framework» (наш собственный фреймворк).

Выше я использовал слово «почти», так как эпоха перемен назрела, и первые шаги к конвертации базы кода в ООП уже проводились. Соответственно, все новые возможности обязательно писались объектно-ориентировано, с юнит-тестами, но с ядром системы всё равно приходилось взаимодействовать через require и global. На том этапе мне торжественно обещали, что разгребать авгиевы конюшни мне не придётся, и свой код они со временем отконвертируют сами.

Совет владельцам. Следите за современными тенденциями при написании кода. Старайтесь учитывать и закладывать в финансовую модель возможную необходимость его обновления/рефакторинга под новые технологии или даже другие фреймворки. Иначе в какой-то момент Вы можете обнаружить, что работаете с помётом мамонта сильно устаревшей базой кода. Как результат:

  1. переписать всё равно придётся когда-то, но процесс будет гораздо более мучительный, порой требующий нескольких итераций рефакторинга;
  2. новым сотрудникам будет сложнее понять, что и как у Вас работает вообще, а Вам придётся потратить больше ресурсов на их введение в курс дела. Некоторые при виде того, с чем придётся работать, просто могут перекреститься пяткой и уйти.

Совет сотрудникам. Будьте внимательны, если Вам приходится надолго застрять в некоем редком фреймворке или legacy коде. Вы можете получить массу экономически бесполезного (т.е. не влияющего на Вашу стоимость как специалиста) опыта.

Удалённая работа и командное взаимодействие

Когда ваша команда разбросана по странам, возникают некоторые сложности в коммуникации, как очевидные, так и не очень. Например, есть у людей такой себе психологический барьер беспокойства. Если Вы застряли, либо у Вас возник вопрос, Вам будет несложно подойти к человеку, сидящему в той же комнате, и спросить. Уже через минуту-две ответ получен, и можно продолжать работу. Если комната человека находится в другой стране, Вы, скорее всего, напишете ему свой вопрос и будете терпеливо ждать. Либо спросите, можно ли позвонить, и только потом позвоните. Срок решения сильно растягивается.

Есть и другие нюансы. Например, сложно оценить, то ли человек делает, что ты ожидаешь, пока он не сделает пуш своего кода. А коль скоро мы все работали в master ветке (криминал, знаю), пуш случался, когда код уже работал хоть как-то. И тут мы возвращаемся к паре человек, которым было поручено подхватить мою интеграцию.

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

Совет владельцам. Позаботьтесь не только о наличии code style guide, но и о его внимательном изучении новыми сотрудниками.

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

Думаю, полезно будет упомянуть, какие инструменты мы использовали в работе (многие их наверняка знают и так).

  • Trello — для списков задач. В компании не использовались современные системы управления проектами. У каждого была своя доска в Trello, где обязательными были колонки «To do», «Doing», «Done» плюс любые другие по своему усмотрению (например, «To do later» для задач, которые было бы хорошо сделать, но не горит, «To do — подсистема», когда приходилось отложить работу над чем-то и переключиться на другие задачи и т.п.). У всех был доступ на запись к доскам других сотрудников, чтобы при необходимости добавлять им найденные в их коде баги. Все могли видеть, кто чем сейчас занимается. По окончанию рабочего дня дамп из колонки «Done» переносился в трекер как дневной отчёт. Никакими дополнительными отчётами никто никого не мучил.
  • Slack — для индивидуальной переписки и групповых уведомлений (из серии «я запушил серьёзные изменения, сделайте пулл при первой возможности»). Кстати, не так давно Slack был внедрён и в UA-Hosting. Теперь сотрудники клиент-сервиса получают автоматические уведомления о новых тикетах и оплатах (как на рабочий компьютер, так и на телефон). Это позволяет им быстрее реагировать на запросы клиентов и выдавать новые заказы. А также шептаться за спиной у начальства.
  • Skype — для созвонов, иногда для скрин-шеринга «по мелочам».
  • Mikogo — для более основательного скрин-шеринга при совместном тестировании.
  • Интранет — собственная база знаний по различным вопросам. Свалка всего, что когда-то может пригодиться или может выветриться из головы. Строго говоря, их было несколько — для разработчиков, для сотрудников колл-центра, менеджеров колл-центра.

Смена вектора

Пришло лето, запуск не состоялся. Шеф принял решение сместить вектор с payroll на телефонию. Но нужно было ещё несколько месяцев, чтобы дописать необходимый функционал. Мне опять достались «удалённые» задачи — интеграция собственной базы обзвона с CRM системами.

Формулировка была опять достаточно абстрактной — нужно было постить в систему данные об исходящих звонках как события лида/контакта и с помощью уже существующего плагина для Chrome находить на странице CRM номера телефонов и преобразовывать их в ссылки для вызова через нашу собственную звонилку. Особенно «весёлой» оказалась вторая часть задачи, но в целом удалось заставить работать.

Потом была ещё одна интеграция — более волнующая. С платёжной системой (и реализация приёма оплаты в целом; до того клиентов было мало, и платежи обрабатывались вручную, но мы же готовились к коммерческому запуску). Материнская компания была зарегистрирована в Гон-Конге, и на тот момент (осень 2015) наиболее выгодным в данной ситуации был платёжный шлюз Braintree Payments.

Запуск? Запуск прошёл как плюх в лужу весьма тихо. Просто появилось ещё несколько клиентов колл-центра, которые уже платили через Braintree карточкой. И вектор был снова смещён в сторону payroll.

Работа в команде, или 8 месяцев на Филиппинах

Честно говоря, смутно припоминаю свои задачи на первую половину 2016 года. Возможно, они были не столь интересны, возможно, семейный кризис занял первые ряды в моей памяти. Помню только, что было повышение зарплаты (уже второе). Как бы там ни было, в июле шеф предложил прилететь к ним на Филиппины и поработать в команде.

Условия были следующие: мне оплачивают перелёт в одну сторону, проживание и расходы на продление визы, взамен я дополнительные 10 часов в неделю работаю бесплатно. У большинства уважающих себя людей должен бы был сработать сигнал «какого рожна?». По сути, я летел в командировку за свой счёт, т.к. моя часовая ставка, помноженная на «бесплатные» часы примерно и давала стоимость всего того, что они мне «оплатили». Но мне нужно было развеяться, да и на Филиппинах я давно хотел побывать. Примерно с тех пор, как вычитал, что среднегодовая температура там примерно +26..+27 градусов — как раз моя комфортная температура.

Географическая справка о Филиппинах

Первой моей ошибкой было читать о средней, а не о среднедневной температуре, которая большинство месяцев переваливает за +30 и уже совершенно не является моей комфортной. Вообще на Филиппинах есть два основных вида погоды: жарко и влажно, очень жарко и посуше. Ну и ещё есть февраль, когда нам, белым людям, комфортно находиться на улице в шортах и футболке, а местные кутаются в кофты и курточки. Во все месяцы, кроме февраля, я без преувеличения пропотевал всю футболку за 20-30 минут прогулки по улице быстрым шагом. Из всех Филиппин приятным в плане температуры исключением является лишь гористая местность Багио (Baguio), но я там не бывал.

Если Вы рассматриваете Филиппины в качестве места для зимовки и комфортно себя чувствуете при температурах выше +30 днём, в целом, там достаточно дёшево и приятно. Однако интернет там достаточно дорогой, медленный и нестабильный. Пару дней ждать ремонта накрывшейся линии — это нормально даже для бизнес-района столицы. А когда основатель компании жил в провинции (где они снимали неплохой дом рядом с морем менее чем за 200 долларов в месяц, кстати), примерно раз в неделю на целый день выключалось электричество во всём посёлке. Без предупреждений и графиков. Просто нужно смириться с тем, что в любой момент Вам могут устроить выходной, даже когда это меньше всего в тему. Ну и если живёте в таком месте, желательно арендовать мотороллер, без него в Юго-Восточной Азии — как без рук.

Поселили меня в небольшой квартирке-студио на 42 этаже, с видом на Южное кладбище Манилы. Когда было совсем скучно, я мог с высоты понаблюдать за жизнью обитателей кладбища (да, там живут вполне себе живые люди, готовят еду, сушат простыни на оградках и всё такое). И уже на следующий день я приступил к работе.

Ну как на следующий день… На следующую ночь. Мы ведь готовились к запуску через 3-4 месяца, а коль скоро продукт ориентирован на США, шеф решил работать тогда же, когда и все Штаты. На Филиппинах в это время глубокая ночь. Но т.к. немалый процент экономики страны составляют колл-центры, ориентированные на англоязычные страны (филиппинский английский куда лучше и понятнее индусского, например), ночные смены там являются чем-то обыденным, а общественный транспорт ходит чуть ли не круглые сутки. Я ещё не знал, удастся ли мне совместить 50 рабочих часов и ночную смену, но решил попробовать работать по 10 часов в день, оставляя себе 2 выходных. И, к удивлению, очень даже неплохо получилось. Сосредотачиваться стало легче, когда вокруг все были сосредоточены и усиленно трудились.

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

Немного о зарплатных налогах в США

Общеизвестно, что США состоит из 50 штатов и федерального округа Колумбия (островные территории нас не интересовали). Менее известно, что налоговых юрисдикций ещё чуть больше: население штата Нью Йорк настолько большое, что его поделили на 3 отдельных налоговых юрисдикции. Зарплатные налоги делятся на две большие группы — федеральные и налоги юрисдикции (не штата, т.е. на территории штата Нью Йорк действуют 3 слегка отличающихся налоговых системы). В общей сложности существует 4 федеральных налога и от 1 до 4-5 местных.

Естественно, по каждому налогу существует отчётность. Форма подачи отчётности (бумажная или электронная), равно как и сами бланки отчётности, для каждого налога свои. Некоторые подаются исключительно в электронном виде, некоторые только в бумажном, некоторые допускают оба варианта. Некоторые можно просто распечатать на бумажном листе и отправить по почте, другие же можно печатать только на специальных бланках, выполненных с использованием так называемых «исчезающих чернил» (drop-out ink), которые не видны OCR-машинам, обрабатывающим пачки отчётов. При этом для некоторых форм, выполненных в таких чернилах, существовал стандарт, позволявший печатать их самим в чёрно-белом исполнении безо всяких чернил.

А ещё по некоторым налогам действует прогрессивный интервал уплаты и отчётности. Иными словами, чем больше какого-то налога Вы начисляете, тем чаще его нужно платить в казну и отчитываться. А ещё есть формы приёма на работу (new hire), которыми Вы просто отчитываетесь, что приняли человека в штат. И tax exemption certificate, которым работник информирует работодателя о полагающихся ему налоговых льготах. И абсолютно живущая по своим правилам форма, которой работодатель проверяет и подтверждает право сотрудника работать в США (а ещё она не допускает автозаполнения полей даже при использовании HR программного обеспечения). А ещё как минимум в одном штате практикуется окружной налог (county tax), отчётность по которому идёт в город/село, где он платится. И абсолютно нормальное явление, когда село на тысячу человек имеет свою собственную налоговую форму именно для этого налога. Весь этот мрак нужно было учитывать при разработке системы. И лишь часть его уже была учтена.

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

Видимо, потому, что работать по 50 часов в неделю у меня вполне себе получалось, шеф решил повысить ставки и предложил работать по 60 часов в неделю в обмен на удвоение опциона. Условия были те же, что и на первый — первое зачисление по итогам года, дальше — помесячно. Т.е. если я слетаю с 60 часов раньше, чем через год, получаю шиш еловый. Пересчитав миллионы от продажи акций в будущем, всех 0 друзей на Филиппинах и отпраздновав своё 30-летие через Google Hangouts, я согласился с одной оговоркой: я хочу увидеть запуск проекта до конца моего пребывания на Филиппинах. Шеф с оговоркой абсолютно согласился, ведь уже решено — запускаемся через 3-4 месяца.

И закрутилось. Небольшой собственный язык разметки для подтягивания нужных данных в поля формы, впечатывание подписей в формы, генерация PDF из этого добра, формы, требующие несколько подписей, разных людей, переработка клиентского to-do для отображения актуального списка, статуса и сроков подачи форм, онбординг новых сотрудников… А заодно потихоньку начали привлекать к рефакторингу старого кода, написанного ими самими годы назад. Как результат…

I smell burnout

Примерно так мне сказал за пивом один местный, с которым я удивительным образом умудрился разобщаться, работая по 10 часов в ночь 6 ночей в неделю. Шёл уже 5-й месяц моего пребывания на Филиппинах, шеф решил перейти на человеческий график и работать днём. А ещё мы не запустились. Опять. «Ведь ещё так много всего не идеально».

Совет владельцам. Запускайтесь. Хотя бы закрытая альфа. А лучше открытая бета. Лучшее — враг хорошего. К тому же, постоянная работа «в стол» убивает творца.

Былина о том, как я в стартапе работал - 2
Сам эту книгу не читал, но название выглядит уместным.

На 5-й месяц я начинал тихо ненавидеть свою работу, задачи, подход к управлению… Короче, практически всё. Но продолжал упорно наступать себе на горло, вставать по утрам и идти в офис. Я уже чувствовал, как расшатывается и меееедленно разрушается моя нервная система. У меня появились некоторые реакции, которые я ранее за собой не замечал.

В конце февраля я вырвал себе 2 выходных подряд вместо 1. Ну как вырвал… Отработал 12 дней без выходных и получил 2 выходных подряд. И улетел на пару дней на соседний остров (Себу), попутешествовать и встретиться с одним давним знакомым. Мы сидели на берегу моря, пили вино, общались, слушали прибой… Видимо, в тот момент я впервые за уже 6 месяцев выдохнул. Ещё где-то неделю на работе меня всем нутром тянуло в тот субботний вечер и покой.

Совет сотрудникам. Давайте себе выдохнуть. Согласно статистическим данным, опубликованным Центром по контролю заболеваний, 2.7% самоубийств приходится на математиков и сферу IT, причём 85% из этого числа — мужчины. Есть ещё мемориальная категория на Wiki, также наводящая на размышления. Цель Вашего работодателя — получить от Вас максимум за выплаченные деньги. Ваша цель при этом — не угробить свой основной рабочий инструмент, т.е. мозг и нервную систему. Если станок Вам оттяпает руку — Вы получите инвалидность и пенсию (хоть и нищенскую). Если у Вас наступит выгорание, и Вас будет выворачивать от вида кода, Вы ничего не получите, хотя по сути это будет такой же инвалидностью. Просто слишком неочевидной.

Возвращение домой

Как и было запланировано, в начале апреля, после почти 8 месяцев жизни на Филиппинах, я улетел домой. Небольшой недельный отпуск на «посмотреть ещё что-то в Азии», и снова за работу. И дальше по 10 часов в день, 6 дней в неделю. Только было это уже тяжелее. Я был сам, той атмосферы не было. Да и без воодушевлённого взгляда шефа, так верившего в свой проект, моя вера потихоньку начала иссякать. Хотя на лето планировался запуск, и надо было оперативно дорабатывать онбординг напильничком и рефакторить их старый спагетти код в объектно-ориентированный. Более того, мне пришлось ещё и придумать структуру классов, в которую можно было бы красиво упаковать их спагетти.

Где-то через месяц я пришёл к глубокому пониманию, что я застрял в болоте. Я не рос вообще никак: ни профессионально (рефакторинг legacy кода — так себе строка в резюме), ни карьерно (а куда в компании из 4-5 разрабов?), ни финансово (пересмотра зарплаты уж год как не было и не предвиделось). Я собрался с духом и сказал, что хочу вернуться к 40-часовому рабочему дню. Тем более, у меня назревали перемены, к которым тоже надо было готовиться. До сих пор не совсем понимаю, что со мной не так, и почему для этого мне нужно было собираться с духом. Условия сделки были просты: я работаю по 60 часов, если мы запускаемся, пока я на Филиппинах. Я уже месяц как дома, а запуском не очень-то и пахнет. Шеф предложил сохранить условия удвоения опциона, если я доработаю оставшиеся 4 месяца в течение года с того момента.

Совет сотрудникам. Любите себя. Не стройте из себя звезду, но любите. В силу исторических причин мы часто не ценим себя, и с этим надо бороться.

Эмиграция

Одним из полезных побочных продуктов работы в адском графике (и, пожалуй, единственным) является то, что деньги тратить не успеваешь. Не остаётся ни сил, ни времени. Я уже давно планировал эмигрировать в Латвию, но сейчас мне наконец удалось насобирать достаточно, чтобы выполнить легальное требование по финансовому обеспечению. Бодро и весело я за два июльских выходных дня переехал на своё новое место жительства.

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

Кризис жанра

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

Сразу после посещения первого доктора я попробовал ещё поработать, но хватило меня дня на полтора. И я сказал шефу, что спёкся, и мне нужно несколько дней отдыха. Не знаю, сколько, буду знать — скажу. Где-то дней через 5-6 я снова приступил к работе, но делать это было всё сложнее и сложнее. Гонка за 40 часами в неделю согласно трекеру уже превратилась в какой-то невроз. А ещё через какое-то время мне прописали антидепрессанты.

Совет всем. Учитывая специфику работы программистов, риск заработать депрессию повышен в сравнении со многими другими профессиями. Сказываются умственные нагрузки, социальная изоляция, отрицательный образ мышления (признайтесь честно: Вы чаще ищете баги или наслаждаетесь красотой и изящностью своего творения?) и т.п. Все мы бываем подавлены время от времени. Но если счёт пошёл на недели, а то и месяцы — пора проконсультироваться у специалиста. Лучше потратить на него меньше денег и сейчас, чем больше и потом, когда Вы уже не будете в состоянии даже их зарабатывать. И ещё, далеко не всегда друзья могут адекватно понять человека с депрессией и помочь ему, и от этого может стать только хуже. Объяснять здоровому человеку, что такое депрессия — всё равно, что объяснять, что такое удар током, тому, кто ни разу не совал пальцы в розетку. Вы можете расписать это очень красочно, но пока он не сунет пальцы — он не осознает, каково это.

Финальные аккорды

Если кто-то из вас доходил до такого состояния, думаю, он понимает, что дальнейшая работа в таком состоянии — это настоящее хождение по мукам. Тем не менее, мыши плакали, кололись, но продолжали грызть кактус. В декабре моя производительность начала сильно падать, я уже не справлялся с 40 часами в неделю. Я хотел попросить саббатикал, а шеф активно напоминал об оставшихся 4 месяцах по 60 часов в неделю ради удвоения опциона. И звал в Грузию, где он на тот момент находился с семьёй, для командной работы. И хотя стоимость моего опциона за уже более 2.5 лет увеличилась в 183 раза (с 0 до 0), я почему-то согласился. Но твёрдо для себя решил, что из Грузии через 4 месяца я возвращаюсь уже не сотрудником этой компании. Динамично развивающийся стартап на поверку оказался вяло развивающимся семейным бизнесом с амбициями и без решительности.

По прибытии в Грузию мне достались некоторые интересные задачи, сопряжённые с новым приоритетным вектором запуска — расширением колл-центра. Но никаких сроков не называлось, а самих задач хватило недели на две, после чего — добро пожаловать назад в дивный мир рефакторинга. Наличие коллег вокруг уже никак не помогало и не стимулировало. Собственно, ничего не помогало и не стимулировало. Где-то неделю мой мозг был больше озадачен вопросом «как я буду решать свои проблемы, если уволюсь прямо сейчас» (особой финансовой подушки не было), нежели самой работой. И я сделал то, что стоило бы сделать уже давно — просто уволился. Передал дела, оставил свой рабочий компьютер и улетел.

Мораль сей басни такова...

Прошло примерно полгода, а меня до сих пор сама мысль о заглядывании в PHP код встречает сильное внутреннее сопротивление. Я даже всерьёз задумывался, не сменить ли мне род деятельности. Но практика показала, что другие языки программирования не вызывают такого отторжения. Так что пока остаюсь с вами.

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

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

В завершение хочу сказать, что мне всё равно было очень приятно работать с теми людьми. Было приятно и очень непривычно получать маленькие словесные бонусы за то, что я просто считал выполнением своей работы. Эта культурная особенность сильно шла вразрез со всем моим предыдущим рабочим опытом (как-то не принято у нас в повседневности говорить даже таких простых вещей, как «good job»). Хочется им заочно пожелать успешно запуститься. Всё-таки формально опцион на акции всё ещё за мной.

А лонг-риду тут конец, кто осилил — молодец.

Спасибо, что остаетесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

Автор: Vasiliskov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js