Як я працюю: Олександр Жаботинський, Senior Software Engineer в Infopulse

[В рубриці «Як я працюю» ми запрошуємо гостя розповісти про свою роботу, організації воркспейса, корисних інструментах і лайфхаках]

Олександр Жаботинський — Senior Software Engineer в компанії Infopulse, понад 9 років працює з Python-стеком. Крім роботи в аутсорсингу, Олександр розвиває власний продукт — сервіс замовлення таксі Cab24 . Він розповів DOU, як ефективно поєднувати роботу і бізнес.

Про себе

Домашній комп'ютер у мене з'явився досить рано — десь у 5-му класі, це була «трійка» (не плутати з Pentium III). MS-DOS 6.22, Windows 3.11, офісний пакет, «буквар» Фигурнова і ніякого інтернету. Жорсткий диск був 80 Мб, і досить скоро мені не вистачило місця на якусь гру. Я видалив NC (не netcat), а після перезавантаження довелося читати того самого Фигурнова, щоб повернути все назад. На жаль, нічого не вийшло: комп'ютер простояв два місяці, після чого прийшов татів товариш і «полагодив» його. Але два місяці не пройшли дарма: я розібрався, як працюють деякі команди DOS, офісні програми. Пізніше навчився встановлювати систему з нуля. Де то в 7-му класі стало цікаво, як пишуть програми, і я почав знайомитися з Delphi.

Закінчивши школу, я поступив на факультет комп'ютерних наук філія МНТУ в Полтаві. Поки вчився, працював системним адміністратором в місті тоді був бум на домашні мережі, перехід з діалапу. Напевно, RJ45 і зараз з закритими очима обожму, причому за кольорами :)

Після університету я поїхав працювати в Москву, так як там були родичі і, здавалося, більше перспектив. Я думав продовжити кар'єру мережевика. На жаль, процес рекрутингу виявився своєрідним. По-перше, дивилися не на мій досвід роботи, а на те, яка в мене освіта, і якщо написано «інженер-програміст», то про сисадмине мова вже не йшла. По-друге, звичайно, громадянство. У якийсь момент хотілося поїхати, але допомогли родичі. Я потрапив у невелику компанію, яка виграла тендер на написання/міграцію існуючої інформаційної системи на Python/Pylons. Так почалася моя кар'єра Python-розробника. На жаль, процес натуралізації був досить тривалий, і через 3 роки я вирішив поїхати в Київ, де практично відразу потрапив в аутсорсинг.

У Infopulse працюю вже більше 4-х років. Наш клієнт — велика телеком-компанія BICS, і це накладає певну специфіку на завдання. Оскільки замовники переважно — інженери або менеджери телекомунікацій, основна частина проектів — внутрішні корпоративні програми та системи для аналізу роботи мереж, їх моніторинг, сигналізація, всілякі білінги, лоад-балансеры, аналіз трафіка і т. п.

Програмістам, які мають уявлення про роботу IP-мереж, спочатку доводиться стикатися з новою номенклатурою і технологіями, так як інфраструктура телекому сильно відрізняється від тієї, що була в звичних мережах. Як я вже говорив, у нас багато завдань пов'язані з нетворкінгом, різними вузлами різних виробників, всіляких аналізом і підрахунком даних. Трафік йде постійно, його багато, тому програми повинні бути відмовостійкими, повинні ефективно використовувати ресурси. Багато часу приділяється тестування і контролю якості. Дуже часто в проектах використовується Twisted, також є веб на Django, багато легасі, починаючи з Python 2.5, яке, зі зрозумілих причин, все частіше переписується на 3.6.

Типовий проект може зачіпати безліч департаментів в компанії, багато часу йде на аналіз документації, схем і тісній комунікації з фактичним замовником. Досить багато відряджень. У компанії велику увагу приділяють безпеці, часто доводиться довго вивчати проектну документацію і топологію мережі, перш ніж запросити доступ і фактично почати працювати.





Як поєднувати роботу і власний бізнес

На початку 2013 року я став співзасновником проекту Cab24 — це сервіс онлайн-замовлення таксі по Києву, який досить швидко знайшов своїх користувачів, так як однією з основних фішок додатки була оперативність при роботі з адресною базою. Користувач не відчував труднощів у створенні замовлення, навіть коли швидкість мобільного інтернету була нижче, ніж традиційного на той час EDGE.

Особливу увагу ми приділили простоти і швидкості отримання послуги, а не попереднім виманювання персональної інформації у вигляді гугл-facebook-акаунтів. Тож реєстрації на сервісі, яка обов'язкова майже у всіх конкурентів, немає: встановивши додаток, можна відкрити його і відразу користуватися. У 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.

Іноді хочеться відволіктися від роботи і почитати художні твори. Взимку читав «Сагу про відьмака» польського письменника Анджея Сапковського — дуже сподобався створений фантазійний світ.

На жаль, на читання і самоосвіта не виходить виділяти надто багато часу. І на роботі, і вдома завжди багато справ. Тому є час тільки в транспорті.

Ретроспектива та плани на майбутнє

Мені подобається той шлях, який був пройдений, і немає бажання щось змінювати. Тим, хто тільки починає свій шлях у програмуванні, раджу більше працювати, активніше дивитися на нові технології. Мабуть, не занадто довго затримуватися на одному місці роботи. З першого разу може й не вийде потрапити на серйозний проект, де себе можна реалізувати, а тому не варто припиняти спроби і пробувати, шукати. І пам'ятати, що робота повинна приносити задоволення. Якщо ви відчуваєте, що якась область захоплює вас більше інших, то варто звернути на неї увагу і розвиватися в цьому напрямку.

Якщо говорити про запуск власного проекту, то головне — переконатися, що ваш продукт дійсно необхідний ринку і спрогнозувати на рік-два вперед, чи будуть споживачі, щоб не витратити час і зусилля марно. Стартапи є двох типів: з красивим кодом і ті, які працюють. Тому на початковому етапі я б радив скоріше запускати продукт.

Що до мене, зараз мені подобається розвиватися технічно, цікаво телеком-напрям. Багато планів щодо розвитку бізнесу.

Опубліковано: 19/06/18 @ 10:28
Розділ Різне

Рекомендуємо:

Країна відчинених дверей. Українська програмістка про життя в Канади
Product Management дайджест #4: розвиток продактов, вплив реклами на UX і як у Google розуміють досконалий продукт
Сертифікація AWS: як і навіщо її отримувати
Як я без досвіду знайшов роботу в польській ІТ-компанії й чому повернувся назад
Server Developer: хто це, що робить і як їм стати