Как я работаю: Александр Жаботинский, Senior Software Engineer в Infopulse
[В рубрике «Как я работаю» мы приглашаем гостя рассказать о своей работе, организации воркспейса, полезных инструментах и лайфхаках]
Александр Жаботинский — Senior Software Engineer в компании Infopulse, более 9 лет работает с Python-стеком. Помимо работы в аутсорсинге, Александр развивает собственный продукт — сервис по заказу такси Cab24. Он рассказал DOU, как эффективно совмещать работу и бизнес.
О себе
Домашний компьютер у меня появился довольно рано — где-то в
Закончив школу, я поступил на факультет компьютерных наук в филиал МНТУ в Полтаве. Пока учился, работал системным администратором — в городе тогда был бум на домашние сети, переход с диалапа. Наверное, RJ45 и сейчас с закрытыми глазами обожму, причем по цветам :)
После университета я уехал работать в Москву, так как там были родственники и, казалось, больше перспектив. Я думал продолжить карьеру сетевика. Увы, процесс рекрутинга оказался своеобразным. Во-первых, смотрели не на мой опыт работы, а на то, какое у меня образование, и если написано «инженер-программист», то о сисадмине речь уже не шла. Во-вторых, конечно, гражданство. В какой-то момент хотелось уехать, но помогли родственники. Я попал в небольшую компанию, которая выиграла тендер на написание/миграцию существующей информационной системы на Python/Pylons. Так началась моя карьера Python-разработчика. К сожалению, процесс натурализации был довольно длительный, и через 3 года я решил уехать в Киев, где практически сразу попал в аутсорсинг.
В Infopulse работаю уже более
Программистам, которые имеют представление о работе IP-сетей, поначалу приходится сталкиваться с новой номенклатурой и технологиями, так как инфраструктура телекома сильно разнится с той, что была в привычных сетях. Как я уже говорил, у нас много задач связаны с нетворкингом, различными узлами разных производителей, всевозможным анализом и подсчетом данных. Трафик идет постоянно, его много, поэтому приложения должны быть отказоустойчивыми, должны эффективно использовать ресурсы. Много времени уделяется тестированию и контролю качества. Очень часто в проектах используется Twisted, также есть веб на Django, много легаси, начиная с Python 2.5, которое, по понятным причинам, всё чаще переписывается на 3.6.
Типичный проект может затрагивать множество департаментов в компании, много времени уходит на анализ документации, схем и тесной коммуникации с фактическим заказчиком. Довольно много командировок. В компании большое внимание уделяют безопасности, часто приходится долго изучать проектную документацию и топологию сети, прежде чем запросить доступ и фактически начать работать.
Как совмещать работу и собственный бизнес
В начале 2013 года я стал сооснователем проекта Cab24 — это сервис онлайн-заказа такси по Киеву, который довольно быстро нашёл своих пользователей, так как одной из основных фишек приложения была оперативность при работе с адресной базой. Пользователь не испытывал трудностей в создании заказа, даже когда скорость мобильного интернета была ниже, чем традиционного в то время EDGE.
Особое внимание мы уделили простоте и скорости получения услуги, а не предварительному выуживанию персональной информации в виде гугл-фейсбук-аккаунтов. Поэтому регистрации на сервисе, которая обязательна почти у всех конкурентов, нет: установив приложение, можно открыть его и сразу пользоваться. В Cab24 впервые появилась функция изменения стоимости поездки во время поиска машины. Мы не злоупотребляли SMS информированием. Android-приложение хорошо работало на китайских смартфонах без Google-сервисов.
Поскольку нельзя регистрировать торговые марки, где в названии присутствуют общепринятые слова (юридически, слова, которые являются достоянием общественности) типа «такси», необходимо было придумать бренд. Название Cab24 придумал мой коллега, и, наверное, это было первое упоминание слова «Кеб» в Украине. По крайней мере в маркетах на тот момент мы ничего подобного не нашли. Иконка — тёплая, ламповая Carbodies FX4R в фас.
Сегодня заказывать такси онлайн стало обыденностью. Прогресс в предоставлении услуг мобильных операторов, уровень и стандартизация мобильных ОС и устройств упростили многие задачи, над которыми в свое время приходилось немало думать.
Касательно развития проекта, изначально было два пути. Писать весь комплекс с нуля — клиентскую и водительскую части, и далее продвигать водительскую на рынок. Или, реализовав клиентскую часть, интегрироваться в существующий рынок, который исторически работал на ПО, написаном на Delphi, фактически без документации или открытого API.
Первый путь требовал серьезного капиталовложения и, как выяснилось на тот момент, был сложным не только финансово, но и маркетингово. Потребовалось бы немало усилий и средств, чтобы «убедить» рынок водителей, которые почти на 100% были контролируемы диспетчерскими службами и софтверной компанией, написавшей для них ПО, пользоваться новым комплексом.
Второй путь предполагал интеграцию с существующими комплексами ПО при условии, что нет никаких открытых API. На первых этапах приходилось изучать трафик через Wireshark и мониторить изменения в БД.
В первые месяцы после старта я занимался проектом фактически фултайм, тратил отпуски, выходные, сидел ночами. Позже ко всему присоединились еще и не технические задачи — изучение законодательной базы по регистрации торговой марки, авторского права и интеллектуальной собственности.
По состоянию на сегодня Cab24 работает с тремя системами, традиционно большая часть написана на Delphi, и все абсолютно разные архитектурно — от дизайна БД до протоколов коммуникации. Мы поддерживаем приложения для Android, iOS и Windows Phone. Недавно география сервиса расширилась на областные центры.
Конечно, сейчас проект не тянет столько времени, как поначалу, но все равно требует внимания. Иногда необходимо посидеть вечером, иногда на выходных.
В планах развивать проект, расширяться по Украине, держать руку на пульсе трендов и реализовывать новые фичи, чтобы сервис становился еще более удобным и полезным.
Типичный рабочий день
7:00. Просыпаюсь — обычно будит ребенок. Иногда чуть раньше, иногда чуть позже. В дороге, как правило, читаю. Чаще техническую литературу, художественную редко. Предпочитаю бумажные книги.
10:00. Приезжаю на работу. Утренних стендапов или каких-то других регулярных утренних активностей у нас нет. Митинги могут быть в течение всего дня — все зависит от проекта, которым я занимаюсь. Есть weekly с коллегами из Бельгии и менеджером, остальное спонтанно.
18:00. Уезжаю домой. В дороге читаю.
19:00. Гуляю с ребенком, ужинаю, занимаюсь своими проектами.
В среднем я работаю около 40 часов в неделю. Несколько раз в год, как правило, во время праздников, в телекоме бывают пиковые нагрузки. В такие дни иногда приходится вечером дополнительно поработать из дома, но такое случается нечасто. Такая специфика работы телеком-компаний. Есть также командировки, интенсивность зависит от проекта.
Инструменты и продуктивность
На работе я использую ноутбук Hewlett-Packard с несколькими дополнительными мониторами. Каких-то специфических инструментов выделить не могу, все стандартно. Главная идея в head-офисе клиента — чтобы всё было унифицировано и можно было работать за любым столом, поэтому везде одинаковые док-станции. Для общения — Skype for business, для разработки — PyCharm.
Дома обычный компьютер. Для тестирования мобильных приложений Cab24 держу несколько смартфонов с разными ОС, так как не всё можно проверить на эмуляторе — например, работу приложения находясь в метро, когда сигнал то появляется, то пропадает.
Каких-то специальных практик по тайм-менеджменту не использую: мне достаточно возможности ставить отметку «важно» на входящих письмах и событиях рабочего календаря. Смартфон оповестит заранее, в мессенджерах звук включен только на важные группы и контакты. Соцсети надоели.
Вдохновляет и мотивирует работать фидбэк от пользователей. Это касается как проектов в BICS, так и Cab24. Отзыв конечного пользователя — тот необходимый компонент, который дает стимул для развития продукта.
Книжки и самообразование
Всегда есть потребность что-то учить. Что касается моего основного профиля — Python, — в освоении возможностей языка, мне кажется, нет предела совершенству. Сейчас популярно направление в DevOps, но можно развиваться и в сторону Data science, компьютерного зрения и других направлений. Сейчас на столе лежит «Python Data Analysis».
Для Cab24 слежу за трендами мобильной разработки. Из последнего — читал «Kotlin Programming Cookbook», на очереди «Kotlin/Android Studio 3.0 Development Essentials — Android 8 Edition». Интересно новое направление разработки Google. Возможно, позже будет время посмотреть в сторону Swift.
Иногда хочется отвлечься от работы и почитать художественные произведения. Зимой читал «Сагу о ведьмаке» польского писателя Анджея Сапковского — очень понравился созданный фантазийный мир.
К сожалению, на чтение и самообразование не получается выделять слишком много времени. И на работе, и дома всегда много дел. Поэтому есть время в только транспорте.
Ретроспектива и планы на будущее
Мне нравится тот путь, который был пройден, и нет желания что-то менять. Тем, кто только начинает свой путь в программировании, советую больше работать, активнее смотреть на новые технологии. Пожалуй, не задерживаться слишком долго на одном месте работы. С первого раза может и не получится попасть на серьезный проект, где себя можно реализовать, а потому стоит не прекращать попытки и пробовать, искать. И помнить, что работа должна приносить удовольствие. Если вы чувствуете, что какая-то область увлекает вас больше других, то стоит обратить на неё внимание и развиваться в этом направлении.
Если говорить о запуске собственного проекта, то главное — убедиться, что ваш продукт действительно необходим рынку и спрогнозировать на год-два вперед, будут ли потребители, чтобы не потратить время и усилия напрасно. Стартапы есть двух типов: с красивым кодом и те, которые работают. Поэтому на начальном этапе я бы советовал поскорее запускать продукт.
Что до меня, в настоящий момент мне нравится развиваться технически, интересно телеком-направление. Много планов по развитию бизнеса.