4 месяца после UMI.CMS (автобиографический пост)

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

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

Что я здесь увидел?

В первую очередь, я увидел программерскую контору, в которой действительно есть деньги. Если начальство вам втирает, что везде по рынку зарплата программиста в пределах 100 тысяч и офис на 200-300 квадратов максимум – не верьте. Враньё.

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

Я не буду говорить, сколько этажей контора занимает в этом бизнес-центре – это легко найти в рекламных материалах. И сколько-то ещё в другом, я там ещё не был. Стеклянные двери и лифты, нормальное освещение и вентиляция. Своя столовая со своими поварами. Горы бесплатной еды, орешков, фруктов. Можно, проходя мимо, захватить и выжать 5-6 апельсинов на сок. Можно горстями жрать чернослив и курагу – первое время у меня даже болел живот. Можно заказать за счёт фирмы наушники за $150, и это будет незначительными расходами.

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

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

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

Как бы вам дать понять, насколько здесь люди технически придирчивы в самых мелочах? Простой пример – запрещены JOIN в MySQL. Извольте денормализовать базу данных и думать над выборками. Запрещены вставки INSERT-ом в цикле – извольте собирать один групповой запрос (мульти-инсерт) и выполнять только один раз. А может быть ваш SQL-запрос выполняется дольше 2-х секунд? Досвидания. Вы перебираете массив через foreach? Идите учитесь пользоваться мапами и isset-ом. Не умеете работать с асинхронностью и блокировками в PHP? Марш в детский сад. Ваш php-скрипт работает недостаточно быстро? Берите в руки C++ и пишите свой модуль к PHP.

Да, это хайлоад. Глядя на то, как устроен действительно эффективно работающий код, я с ужасом вспоминаю творчество некоторых “системных архитекторов”, с которыми мне пришлось столкнуться за свою карьеру, и как на ладони вижу их фундаментальные “ляпы”.

Но благодаря UMI я стал по-другому смотреть на мир.

Я стал смотреть на программный код с точки зрения стоимости владения, а не с точки зрения “красоты логики” или циферок производительности в профайлере. Цена поддержки и развития кода для меня стала определяющим показателем, чтобы поделить код на плохой или хороший.

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

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

Я уяснил ранее неизвестную мне разницу между продуктовыми и сервисными компаниями: почему в первых всегда бардак и гонка, а во вторых скучные, но выжимающие все капли оптимизации расходов, процессы. И что вторым сахар, то первым – яд.

Я чётко определил для себя последовательность: самый лучший способ решить задачу – не решать её вообще. Второй способ – спросить того, кто знает решение. Третий – купить решение. Четвёртый – найти бесплатно. Последний – сделать самому. Как ни странно, но эта простая последовательность ещё какое-то время вызывала у меня скрип мозгов и каверзные мысли на тему “лучше перепишу с нуля”.

Работа в UMI задала мне высокую планку того, как проект может бросать вызов. Вытащить UMI.CMS было очень крутым вызовом, с которым не справились 5 моих предшественников. Проект стабилизировался, вызов исчез, и стало скучно. Я уступил место младшему коллеге, у которого от предстоящих задач горячо билось сердце и горели глаза – ему это всё было в новинку.

Работа в дейтинге бросает значительно меньше вызовов – приходится иногда специально их искать, чтобы пробуждать в себе энергию. Я искренне горжусь тем, какую продвинутую систему continuous integration и тестирования продукта в десятках различных окружений я построил в UMI. Здесь пока до этого не доросли.

Но конечно же, самое главное что меня реально мотивирует к работе и творчеству – это развитие своих проектов.