Как работают ИТ-специалисты. Константин Осипов, разработчик и основатель проекта Tarantool
Мы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом.
Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.
Сегодня наш гость — Константин Осипов, разработчик, основатель и руководитель проекта Tarantool. Константин рассказал, как ему удается совмещать пост разработчика ПО с должностью менеджера. Он также поделился своим списком литературы.
Чем занимаетесь в компании?
Я пишу код, делаю ревью, обсуждаю с ребятами задачи. То есть, с одной стороны, я выполняю функции разработчика.
С другой стороны, я делаю доклады, даю интервью. Сегодня у меня многое не получалось рассказать, я запинался. Поэтому после доклада я был очень злой на себя.
С третьей стороны, я все-таки менеджер. Мне нужно помогать развиваться и расти многим людям, которые связали себя с проектом, ведь для них это все-таки карьера. А для этого нужно, чтобы развивался сам проект.
Как вы работаете? Какой вы на работе?
Я очень увлекающийся человек, но у меня есть здоровая доля лени. Задачи, которые я решаю как менеджер, требуют мультитаскинга. А разработка наоборот требует погружения. Какое-то время мне было тяжело это совмещать. Я работаю из дома два дня в неделю. В офис я приезжаю в основном для обсуждений, совещаний и прочей работы с людьми. А дома я могу как раз заняться разработкой. Если у меня не получается участвовать в разработке, писать код, то я начинаю выпадать из процесса. А участие мне необходимо для того, чтобы развивать проект. Поэтому приходится переключаться.
Это интересная история, потому что многие знакомые менеджеры смотрят на это скептически. Они говорят: «Пока ты будешь кодить, ты не добьешься хорошего развития проекта. Нужно посвящать менеджерским задачам все свое время».
Но я знаю, что многие основатели проектов в сфере разработки баз данных продолжают писать код. Или, если вспомнить, например, Линуса… он же кодит. И никто не говорит, что Linux из-за этого плохо развивается.
Сколько часов в сутки вы уделяете работе?
К сожалению, в среднем часов 10. Мне неприятно это говорить. Я не уверен, что необходимо столько времени уделять этому.
Сколько часов вы спите?
7,5–8 часов.
Вы завтракаете?
Утром ем овсянку. Мы готовим завтрак на всю семью. У нас двое детей. Один ребенок первое время отказывался от овсянки. Но потом привык (улыбается).
Много времени уходит на дорогу?
Это большая проблема для меня. Я всегда был фанатом эффективности. Работа из дома — часть этого. Я пытаюсь сократить всю ненужную деятельность в своей жизни. Все должно быть максимально эффективно.
Мы сейчас живем на Юго-западной, а работа на Аэропорту — это где-то час на метро. На машине еще хуже. Первое время я очень злился, что теряю этот час. Но теперь стал смотреть лекции в метро, когда еду. А иногда я еду на велосипеде. За 6 лет работы я нашел маршрут, который идет сначала по велосипедной дорожке (на Вернадского), потом по общей дороге, а потом опять по велосипедной. Удивительно, но на велосипеде получается не дольше, чем на машине в пробке — 1,5 часа.
Чем занимаетесь по пути на /с работы?
Чаще всего слушаю аудиокниги. У меня есть подписка на Audible.
Каким todo-менеджером пользуетесь лично вы?
vi. Я пробовал Evernote, сейчас пробую Google Voice: говоришь OK, Google. Make a note. И он делает заметку.
Недавно прочитал одну научно-фантастическую книгу «Звезда Пандоры». Там есть такой super intelligence, с которым нужно взаимодействовать. Наверное, в Google тоже ее прочитали и поняли, что нужно делать с их голосовыми сервисами. Но пока мне не очень они нравятся. Поэтому все-таки vi.
Каким таск-менеджером / issue-tracker«ом / репозиторием пользуетесь?
Полностью на Github, и это отвечает на все вопросы. Все планирование идет через него. А если какая-то особо сложная задача, мы описываем ее в Google Docs. Потом можно сконвертировать ее в wiki.
До этого мы были на Launchpad, от Canonical (это те же ребята что делают Ubuntu). Они сейчас его забросили. Но в своё время эта была удобная штука, только для Bazaar, а не Git: например, были такие интересные вещи, как blueprints.
Какие инструменты, фреймворки вы используете для разработки?
Несколько разработчиков в команде используют Clion, кто-то использует Sublime. Кроме того, есть корпоративный Mail.Ru JIRA, Confluence. Пользуемся Travis CI, Concourse CI. До этого у нас был Buildbot.
Из инструментов для отладки производительности используем Google Perf, Intel VTune. Сложно утверждать, что мы используем только лучшие инструменты, скорее для каждого случая ищем что-то, что лучше всего подходит из доступного.
Есть ли в вашей компании какие-то внутренние проекты, библиотеки и для чего они создавались?
У нас есть как успешные, так и неуспешные кейсы. В версии 1.7 мы делаем disk store. Он появился как внутренний проект, но оказался нерабочим. Пришлось все переписать.
А есть кейсы, которые просто выстреливают. Один из наших разработчиков сделал библиотеку по функциональном программированию на Lua. Она хорошо работает с LuaJIT, все примитивы функционального программирования поддерживает. Она стала независимым проектом, у нее очень много поклонников.
Еще мы сделали набор инструментов, чтобы в Travis автоматически билдить пакеты. Эта штука называется PackPack. Очень удобно, что в Github ее можно можно подключить к проекту одной строчкой.
Кроме того, мы пользуемся Package Cloud: этот сервис берет на себя функцию хостинга репозиториев. У них open source план скромный, но вообще, если бы мы могли хранить все свои пакеты в этом облаке, было бы здорово. Но пока это очень дорого стоит. A Travis CI нас как open source проект поддерживает бесплатно.
Что вас раздражает больше всего, когда вы работаете?
Я очень эмоциональный человек, и любая вещь, которая не получается, будет меня очень сильно заводить. Если говорить о работе — многое раздражает.
Я как человек все больше сталкиваюсь со своими личными ограничениями. Это меня очень сильно расстраивает.
Какую профессиональную литературу вы бы могли порекомендовать?
Есть такая штука — Library Thing. Это сайт, на котором можно размещать прочитанные книги и ревью на них. У меня есть там аккаунт. Можно сходить туда и увидеть, что я прочитал в последнее время.
Сейчас я в основном читаю про менеджмент в ИТ. По поводу Computer Science… есть много новых алгоритмов, которые раньше мы не проходили в университете. Есть, например, Randomized Algorithms (1995) by Rajeev Motwani.
Если говорить о классике, есть джентльменский набор — например, Introduction to Algorithms, 3rd Edition (MIT Press) by Thomas H. Cormen и другие.
По компиляторам — Compilers: Principles, Techniques, and Tools (2nd Edition) by Alfred V. Aho и Engineering a Compiler (Second Edition) by Keith Cooper.
По базам данных — это книжка Ульмана, Гарсия-Малина… Достаточно интересная книжка.
Что предпочитаете: электронные читалки или бумажные книги?
У меня есть Kindle. Пару раз я топил Kindle в бассейне, луже — я достаточно активно им пользовался. Но это не замена деревянным книжкам. Сейчас бывает так, что книги нет в электронном виде, а я люблю книги, проверенные временем. Если книга есть в pdf, или это что-то новое, читаю в Kindle.
Какую технику (компьютеры, планшеты, смартфоны) и операционные системы вы предпочитаете на работе и дома?
У меня Linux и дома, и на работе. Ubuntu 16. В целом мне от Linux ничего не нужно. Мне хватило бы и 10-летней давности. Меня бы устроил терминал и браузер.
Бесит Open Office: приходится делать много слайдов в нем. Это проект за всю свою историю так и не стал стабильным. Вот сегодня, например, копипаст одного слайда у меня занимал несколько секунд.
В плане мобильных устройств я выбрал Android. У меня телефон Lenovo с огромной тяжелой батарейкой.
Вы слушаете музыку, когда работаете?
Раньше было негативное отношение к музыке во время работы, но работа в офисе это изменила. Теперь постоянно слушаю в фоне chillstep, trip-hop, Аквариум (БГ).
Какой лайфхак позволяет вам быть эффективнее?
Главный прием — нужно постоянно «тюнить» свои привычки. Нужно постоянно искать неэффективные привычки и их выжигать.
Допустим, ты тупишь в Facebook. Надо понять почему. Меня в эту сеть притащил Марк Кэлэхен. Он пишет там крутые статьи, его надо обязательно читать. Так я оказался в Facebook. Но всё лишнее время, проведенное там, я выжигаю огнем.
Без каких приложений и сервисов не можете обойтись ни в работе, ни в личной жизни?
Я пользуюсь сервисами такси — обычно это Uber. Это кардинально поменяло мою жизнь, потому что по-другому планируешь свой день. Еще хочу, чтобы было такси без шоферов. Тогда оно стоило бы еще дешевле и можно было бы не иметь своей машины вообще. Ещё пользуюсь картами, конечно. Чаще всего это maps.me.
У вас пройден огромный путь. А кто-то сейчас стоит в начале этого пути. Что бы вы порекомендовали человеку, пытающемуся пройти тот же путь?
Если бы я был самим собой 20 лет назад, и услышал бы себя сейчас, то скорее всего не понял бы. Такие люди, как Стив Джобс, говорят очень крутые вещи, гораздо лучше меня: «Оставайтесь голодными, старайтесь добиться большего». Надо только уметь их правильно понять.