Как я работаю: Александр Труш, CTO в Edenlab
[В рубрике «Как я работаю» мы приглашаем гостя рассказать о своей работе, организации воркспейса, полезных инструментах и лайфхаках]
Александр Труш начинал свою карьеру как Python-разработчик в DOU, затем запустил собственный стартап Adtena и после работы над несколькими продуктами развивается в аутсорсинге.
Имея 7 лет опыта работы в IT, он занял позицию CTO в компании Edenlab и руководит R&D-департаментом. В его зоне ответственности — работа со стартапами и перспективными технологиями, вроде Machine Learning или Blockchain.
О себе
Я увлекаюсь компьютерами с раннего детства. Программировать начал лет в 10, это был 2003 год. Помню, однажды спросил у папы, как писать игры, и он мне принес диск и книгу по Delphi. И понеслось. В
На первом курсе подрабатывал, помогая знакомым разрабатывать разные приложения под Android. На втором — фрилансил и параллельно преподавал информатику в Академии современного образования, это компьютерная школа для детей с сертифицированным Apple-классом.
На третьем курсе, это был 2013 год, в «Часопысе» разговорился с Максом Ищенко, и он пригласил меня присоединиться к команде DOU как Full-stack Python разработчика. По сути, для меня это была первая настоящая работа над живым продуктом. Как еще не очень опытный программист, я работал под руководством Виталика Волкова. Бесчисленное число раз переписывал систему комментариев. Один из крупных моих почти самостоятельных проектов — система аналитических виджетов в разделе «Работа». Пожалуй, эти полтора года были одними из лучших в моей карьере.
После Майдана DOU на некоторое время закрыли, и как раз тогда Виталик пригласил меня на проект Metapolator. Четвертый курс заканчивал уже заочно: работать было интереснее, чем ходить на пары. А совмещать — нелегко. К примеру, еще работая на DOU, я приходил с университета и до ночи сидел с ноутбуком.
В 2014 году мы с Сашей Дзюбой запустили собственный стартап, Adtena. Это площадка для рекламных сетей на основе Wi-Fi. Я был CTO: руководил технической командой, проектировал архитектуру, писал код. Работать в таком темпе достаточно тяжело, это быстро начало сказываться на состоянии здоровья. Спустя полтора года вместо того, чтобы продолжать работу, мне пришлось очень долго восстанавливаться.
Затем какое-то время я проработал тимлидом в стартапе Digital Hanger. В 2017 году присоединился к компании Edenlab.
Роль и обязанности
В Edenlab я пришел на позицию Elixir-разработчика. Этим языком программирования я увлекался еще с университетских лет, даже успел поконтрибьютить в Core и записать несколько выпусков подкаста. В компании попал на проект по разработке центрального медицинского компонента платформы eHealth. Постепенно продукту уже была нужна не столько моя помощь как программиста, сколько помощь менеджера — и я стал развиваться в этом направлении.
Сейчас я занимаю позицию СТО и руковожу R&D-департаментом Edenlab, который занимается стартапами и перспективными технологиями, вроде Machine Learning или Blockchain.
Моя главная обязанность — участие на пресейл-этапах. Я общаюсь с потенциальными клиентами, выясняю их потребности и помогаю нашим сейлзам составить коммерческое предложение. Затем проектирую будущую архитектуру. Для ускорения этого процесса заранее прописываю типовые базовые «костяки» систем, например, системы авторизации или подходы к миграции.
Также я руковожу двумя командами разработчиков по 7 человек в каждой. Занимаюсь наймом и менеджментом внутренних процессов. Иногда помогаю нашим программистам, но не столько с разработкой, сколько с инфраструктурой по части DevOps.
В моей зоне ответственности есть и некоторая бумажная работа: описываю проектные калькуляции, эстимейты и т. д. Но на это трачу не больше часа в день. Гораздо больше — на документацию для заказчиков.
Не меньше половины всего рабочего времени у меня уходит на коммуникации: стендапы с командой, созвоны с клиентами. Иногда утром захожу в переговорную и только вечером выхожу.
Код по работе уже не пишу, только для себя: например, пишу внутренний портал по рекрутингу. Это не приоритетные задачи, но иногда в свободное время на выходных у меня бывает настроение повозиться с кодом и получить быстрый результат. Но не более того — пожалуй, роль разработчика в компании для меня уже не интересна. Мне нравятся мои текущие задачи, связанные с более высоким уровнем абстракции, а вот подолгу концентрировать внимание на коде уже отвык. В какой-то момент перестало хватать усидчивости.
Типичный рабочий день
8:00. Просыпаюсь, с утра разбираю почту, читаю разные статьи по работе. Затем пешком иду в офис, это занимает
10:00. Прихожу на работу. В первой половине дня у меня, как правило, стендапы с командами.
12:00. Начинаются созвоны с заказчиками — и действующими, и потенциальными.
15:00. По результатам общения с потенциальными заказчиками проектирую архитектуру, чтобы затем показать ее на пресейле и сделать коммерческое предложение. Если нужно, помогаю команде решить какие-то текущие задачи.
19:00. Заканчиваю работу. Как правило, стараюсь не овертаймить, но иногда бывают дни, когда одни задачи накладываются на другие — например, сдаем старый проект и одновременно берем в работу новый. Замечал, что самые тяжелые в этом плане месяцы — с февраля по май.
Вечерами я много читаю, изучаю новые технологии. Например, сейчас у нас в работе есть проект, связанный с Blockchain, и нужно разбираться со всеми тонкостями. Мне это в удовольствие.
Инструменты и продуктивность
В воскресенье я намечаю три больших задачи, которые нужно выполнить в течение недели. Например, закончить какую-то архитектуру для клиента, подготовиться к созвону для пресейла и проверить готовность проекта к демо. Крупные задачи разбиваю на последовательность более мелких. Например, если надо разобраться в чем-то новом по части архитектуры, это будут такие шаги: почитать, пообщаться с коллегами, сделать прототип, принять финальное решение.
Эти задачи заношу в Google-календарь. Раньше пытался держать в голове, но обнаружил, что есть все фиксировать, то чувствую себя спокойнее. Разгружаю оперативку :)
По 15 минут каждый день медитирую: утром или вечером сижу в тишине. Это дает возможность переключиться, побыть с самим собой, расслабиться. Для медитации использую приложение Headspace.
Раньше, когда у меня был iPhone, пользовался сервисом Day One — это онлайн-дневник. Записывал ключевые мысли, которые приходили за день, потом раз в месяц их структурировал. Сейчас перешел на Android и пока не нашел аналог.
По работе схемы проектирую в draw.io. Рабочие процессы — в Confluence, общение — в Slack, работа с документами — в Google Docs. Код пишу в VS Code и с недавних пор в Goland, так как появились проекты на Go.
Чтобы не отвлекаться во время работы, отключаю уведомления практически во всех рабочих чатах, кроме двух-трех самых важных. Пропустить что-то срочное не боюсь: если вдруг упадет продакшн, я точно об этом узнаю :) Все остальное не должно быть срочным. Мои коллеги привыкли, что я отвечаю в среднем раз в час.
На почте у меня уведомления включены, но отвечаю тоже по мере наличия свободного времени. Вообще мне больше нравятся асинхронные коммуникации, когда не нужно торопиться с ответом и есть время подумать.
В соцсети стараюсь заходить по минимуму, активно читаю только Twitter и Telegram, иногда листаю Instagram. В Facebook — только мессенджер, и то быстро отвечаю только близким друзьям. Сообщения от остальных разбираю примерно раз в месяц.
Книжки и самообразование
Я читаю технические книги, но редко дочитываю. Как правило, нахожу нужную информацию и ограничиваюсь несколькими главами. Тем более, базовые вещи у всех авторов описаны примерно одинаково, и если прочитал у одного, нет смысла перечитывать эту же информацию у другого. Последние полгода я активно читаю литературу по микросервисам. По этой теме могу посоветовать «Building microservices» by Sam Newman, «Microservices in Production» by Susan J. Fowler, «Microservices AntiPatterns and Pitfalls» by Mark Richards.
Не на тему микросервисов, но одна из лучших и важных книг для прочтения для всех в IТ разработке — «Проект Феникс» Джин Кин.
Художественные книги последние два-три года не читаю: нет времени. После работы хочется дать отдохнуть глазам, да и голове. А жаль: я считаю, что без художки многое теряю, она отлично расширяет кругозор.
Регулярно просматриваю отраслевые медиа: Hackernews, Verge, Techcrunch. Когда нужно изучить конкретную технологию или бизнес-сферу, ищу нужные материалы, откладываю в Instapaper и в свободное время внимательно изучаю.
Как-то раз, когда я еще работал на DOU, Макс Ищенко удивился, что я не знаю, кто такой Bobuk и что такое Радио Т. Для меня действительно подкасты оказались непознанной сферой. С тех пор я пропустил очень мало выпусков :) Помимо Радио Т, слушаю DevZen, Changelog и Crazy Russians in Devoops. В общем-то, я не считаю, что это прямо самообразование. Скорее, вдохновение. Например, слушая интересных ребят, я прихожу понимание, что не боги горшки обжигают. Надо просто делать, лупать сю скалу.
Ретроспектива и планы на будущее
Если оценивать свою карьеру, мне все нравится, я ни о чем не жалею. Пожалуй, единственное, что посоветовал себе 10 лет назад — это меньше волноваться и тревожиться. Хотя кто знает, может, именно благодаря этим чертам характера я и смог достичь того, чего достиг.
Что бы я порекомендовал начинающим специалистам, которые только начинают карьеру? У нас в стране у людей нет понимания, что такое индустриальное программирование и чем оно отличается от, скажем, олимпиадного или тех же фриланс-проектов. Любая бизнес-задача — это 20% имплементации, то есть непосредственной работы с кодом, и 80% других активностей, вроде работы с документацией. Люди приходят в компании, делают свои 20% и на этом думают, что дело закончено. А как это все будет тестироваться, внедрятся — их не волнует. Это неправильный подход. Я постоянно обучаю наших джуниоров фокусироваться не только на своем коде, а и на всем том, что происходит вокруг него. Это и есть мой ключевой совет новичкам.
Что касается планов на будущее, я не исключаю, что буду рассматривать переезд за границу, но я бы этого не хотел. Мне нравится Украина и Киев. Наше общество пока еще не сформировалось, и в этот период открыты все социальные лифты. Также мне нравится и компания, в которой я работаю. Мы делаем много проектов, которыми можно гордиться, — например, тот же eHealth, которым пользуются 27 млн украинцев.
Я сейчас стараюсь найти баланс между менеджерскими задачами и инженерными — хотя сомневаюсь, есть ли он вообще. Но его поиск позволяет развиваться в обоих направлениях и оставаться на волне новых технологий и идей.
Последние пару лет я часто выступал на тему «выгорания» и важности психического состояния в нашей индустрии, как раз потому что много думал об этом сам и пытался найти для себя ответы. Наша индустрия пока еще очень молодая, нет сформированного общего индустриального базиса для всех. В разных компаниях по-разному понимают должности проектного менеджера или тимлида. Что уж говорить про роль СТО, где за этими буквами может подразумеваться почти что угодно. Это большая проблема, о которой я сейчас думаю. И как только смогу сформулировать для себя, постараюсь начать говорить об этом так, как я делал с «выгоранием».
Если говорить про технологии, то ажиотаж по Blockchain утих. Но я все еще уверен, что технология будет востребована на рынке, просто будет позиционироваться как еще один способ хранить данные. Ведь сейчас нормально, когда программист разбирается в реляционных базах и не только, к этому добавится еще и Blockchain как один из возможных подходов к хранению данных.