Програміст в автопромі. Українець Микита Качко — про те, як поєднати любов до авто та знання C++ і влаштуватись в IT-департамент BMW
Українець Микита Качко — Software Engineer у BMW Car IT. Ще під час навчання в КПІ почав працювати в Samsung Electronics, звідти перейшов у Luxoft на автомобільний проєкт. У 2019 році переїхав в Ірландію, щоб працювати в Amazon. Але любов до машин пересилила — і тепер Нік знову працює в автопромі.
Розробник розповів DOU про кар’єрний шлях, особливості роботи айтівцем в автомобільних проєктах, а також порівняв вартість життя в Ірландії та Німеччині.
Навчання в КПІ та робота в Samsung Electronics
Я народився в Херсоні. З самого дитинства цікавився технікою, машинами — усе намагався розібрати, зламати, «спробувати на смак». Мама це помітила, і вже з дев’ятого класу я перейшов у фізико-технічний ліцей — одну з найсильніших шкіл Херсона з точних наук. Саме там мене «виштовхнули» вступати до київського вишу.
Я обирав між Київським національним університетом імені Шевченка і КПІ. Пригадую, мене здивувало, коли в приймальній комісії Інституту прикладного системного аналізу КПІ мене почали відмовляти туди вступати: «Студенти не витримують, їх виганяють». При цьому, коли я прийшов подавати документи на факультет оптики в КНУ, там мені, навпаки, сказали: «Ой, ну що ви подаєте оригінали не до нас, а в якийсь КПІ — краще подавайте до нас. Ви знаєте, який у нас хороший факультет...». Ще я про всяк випадок подавав документи в Херсонський університет. Звідти прямо дзвонили: «Вступайте до нас, вступайте до нас!». Я відповідаю: «Ні, дякую, я поки чекаю на результати з КПІ». Прийшов у Політехнічний інститут, вони мені знову кажуть: «Це так складно. Може, ви передумаєте?».
У результаті я вступив до Інституту прикладного системного аналізу при КПІ — і «закрутилося-завертілося» на наступні шість років. Вважаю, що мені пощастило. Університет мав зв’язки з міжнародними компаніями, а загальний настрій був такий: «Куди йти працювати? Звичайно ж, у програмування!». Мені ця тема сильно подобалася. Люблю відчуття, коли ти щось робиш-робиш, зібрав — і воно працює. Це стосується будь-яких фізичних речей, наприклад, якщо ти щось ремонтуєш (не обов’язково техніку — той же велосипед, машину). Те саме в програмуванні: ти сидиш, копаєшся-копаєшся, і в результаті воно раз — і працює. І, що найголовніше, виконує якусь функцію. Щодо мене, в ідеалі результат діяльності програміста — інструмент, який зробить рутинну роботу легшою. Від цього також отримуєш задоволення.
Після третього курсу у 2014 році ми повинні були проходити практику. У нашого викладача Богдана Булаха були знайомі в Samsung Electronics. Вони провели невеликий тест на курсі й відібрали п’ятьох студентів на літню практику. Три чи чотири тижні в липні ми ходили в офіс Samsung і робили підпроєкт. Наскільки я знаю, це була одна з перших подібних практик, коли вони брали людей без досвіду на інтернатуру і навіть платили за це гроші.
Практика закінчилася досить швидко, в серпні нам дали можливість передихнути, а у вересні запропонували довгострокову інтернатуру — працювати над проєктом, який з великою ймовірністю буде випущено на ринок. Там нас уже було тридцять осіб, і всі дев’ять місяців ми працювали над новою клавіатурою для Samsung. Спочатку це було part-time — 20 годин на тиждень, а після Нового року — вже близько 30 годин.
Звичайно, весь цей час ми поєднували навчання на четвертому курсі з роботою. Було досить складно, але ми впоралися. Потім нам знову дали відпустку, щоб захистити диплом. А з наступного вересня запросили у штат на п’ятиденку (40 годин). Формально вони пояснювали це тим, що ми вже маємо диплом, і тепер вони можуть нас офіційно прийняти на роботу. Після цього нас ніхто нікуди «не гнав», ми знали, що це безстроковий контракт. Ми працювали над вирішеннями, які інтегрувалися в телефони Samsung. Я знав хлопців, які годинами сиділи над операційною системою Android того періоду.
Тому під час навчання в магістратурі в мене вже був фултайм. Цікаво, що для викладачів аргумент «у мене немає часу відвідувати пари, бо я працюю» був вагомим. Мені здається, вони самі в цьому зацікавлені, бо це формує гарний імідж кафедрі: наші студенти вже за три-чотири роки навчання працюють у міжнародних компаніях.
Перехід у Luxoft
Із Samsung Electronics у мене пов’язані лише найпозитивніші емоції. Але через деякий час мені захотілося дізнатися, що ще є у світі. Я досить багато чув від інших хлопців, які перейшли в аутсорс, про різницю з роботою на продуктову компанію, і мені захотілось з’ясувати чому. Тому у
Я проходив співбесіду на конкретний проєкт, але через те, що в той час (як, мабуть, і тепер) бракувало інженерів, мені відразу почали пропонувати: «Пройдіть ще туди співбесіду, і ще от туди». Але мені сподобалися саме ті інженери та керівник (Антон Волошин), з якими я спілкувався, і я хотів зачекати на їхню відповідь.
У Luxoft я був на двох проєктах. Перший — для Continental, який робив Telematics Control Unit пристрій для Ford. Воно відповідає на команди бекенду, збирає інформацію від автомобіля та надсилає її назад. Також розробляли функціонал «emergency call»: якщо машина потрапляє в аварію й/або ти натискаєш на кнопку, то спрацьовує автоматичний дзвінок до екстрених служб, автоматично надсилаються твої координати і так далі. Технічно це було складно як з боку програмного, так і апаратного забезпечення. Специфіка Automotive припускає, що все, що може піти не так, піде не так. Тому потрібно було передбачати безліч механізм відмовостійкості.
На другому проєкті у Luxoft я почав працювати з BMW, на той час це був новий замовник для компанії. Специфіка була плюс-мінус схожа, але ми пов’язані не з «emergency call», а з телематикою.
Мені сподобалося, що BMW більше часу приділяють не транспортному протоколу між різними компонентами в автомобілі, а тому, що саме їм передається. Тобто в Continental ми були насамперед middleware-розробниками, а деякі працювали над real-time operating system — це все ж таки «серце» Embedded. У BMW це вже був «application level», розробка була на С++, ми писали, іншими словами, звичайну клієнтську програму на Linux. Але це теж був зв’язок між усіма компонентами машини, з хмарою, серверами BMW.
Думки про релокацію
Коли вчився на другому-третьому курсі КПІ, старші хлопці розповідали, як це — працювати у справжньому проєкті. Пам’ятаю, тоді мені здавалося, що це так круто: ти робиш (як тоді я вважав) просто університетські лабораторні роботи, і тобі за це ще й платять! Те саме було з релокацією. Я давно хотів пожити в іншій країні. На DOU читав історії людей, які переїхали, і постійно думав: «А чи буде в мене такий досвід? Чи буду я відчувати те саме? Чи мені сподобається?».
Поки я працював у Luxoft, двічі побував у США та зрозумів, що саме туди переїжджати не хочу. По-перше, для мене США занадто далеко. По-друге, мені не дуже сподобався їхній стиль життя, неефективність з погляду побуту. Наприклад, я бачив людей з гігантськими пікапами на дорозі, які возили із собою трейлер з меблями. Очевидно, що вони поїхали у відпустку чи відпочити на вихідні. Я не розумів, як можна їхати на пікнік з величезним кріслом? Для мене це був просто культурний шок. Те, що вони всюди їздять на машині, мені здається, створює несприятливі умови для здоров’я людей. По-третє, міста в США здалися мені не такими комфортними та затишними, як у Європі.
З плюсів, звісно, США — це країна бізнесу. Під час сніданку в готелі я дуже часто чув, як люди обговорюють якісь справи, роблять одне одному пропозиції, надають послуги. Це задає тон підприємництва. Але цього плюса для країни було недостатньо.
Англійську я знав добре, міг нею вільно спілкуватися. З решти європейських мов я хотів вивчати ще тільки німецьку, тож кандидатів на релокацію було не багато.
Робота в Amazon
Коли у 2019 році до мене прийшов Amazon з пропозицією переїхати в Ірландію, я навіть не роздумував. Плани про релокацію поєдналися з бажанням попрацювати у FAANG. Я потрапив на проєкт, який розробляв сайт для внутрішніх погодинних працівників сортувальних центрів. А це близько двох мільйонів людей, якими треба було керувати з погляду того, хто бере відпустку, якусь зміну і так далі.
Момент, який не те щоб мене здивував (це було сподівано), але дуже сподобався в Amazon, — там працюють дуже мотивовані й розумні люди. Коли я туди прийшов, то відчував себе найдурнішим, зокрема тому, що в мене майже не було досвіду у вебсервісах.
Працівники там заточені на розв’язання проблем. Це видно з brainstorm-мітингів: ми маємо якусь проблему — і хлопці просто один за одним починають вивалювати її можливі розв’язання; обговорювати, які позитивні та негативні сторони в кожного варіанта, як це нам може допомогти. Зрештою минає пів години — і в нас вже є план дій.
Можна сказати, що люди там «під кайфом» від того, що вони роблять. І це постійно відчувається: «А гайда щось круте створимо, тут покращмо, тут щось придумаємо!».
На який би проєкт ти не прийшов, ти завжди відчуватимеш, що ви всі працюєте заради однієї мети й хочете зробити продукт кращим. І що мене здивувало після аутсорсу — вони не шкодують для цього ресурсів, до всього підходять ґрунтовно. Amazon цілком може почати інвестувати за рік до релізу в проєкт, який, наприклад, збільшить користування мобільним застосунком на
В Amazon люди «під кайфом» від того, що вони роблять
Те, що мені не сподобалося, — деяка хаотичність і слабкий менеджмент (принаймні так було в мене на проєкті). Бувало, що один тиждень я роблю щось одне, а наступного до мене звертається тестувальник з іншої команди і просить зробити щось зовсім інше. Ще через тиждень мені треба розбиратися в мобільному застосунку, а потім щось злетить на «проді» на вебсторінці, і треба буде розв’язувати цю проблему.
При цьому було дуже мало комунікації як з безпосередніми менеджерами, так і між членами команди. Спочатку нас було 14 осіб під двома лідами, але з деякими з них я міг і місяць не спілкуватися.
У нас все було хаотично: надійшло завдання — ми почали над ним працювати. Формально, звичайно, були плани та терміни, але це все часто змінювалося та переглядалося.
Ще один мінус — недостатньо quality assurance. Для мене це був біль, адже я дуже багато «факапив». Але якби ми мали більше QA, більшості проблем можна було б уникнути. Ось ми робимо якусь фічу на сайт — і вже завтра вона на «проді». У нас щотижня були релізи, тому що ми застосовували Continuous Delivery. Тож якщо ти десь облажався, щось пропустив, тисячі людей це побачать.
Як наслідок, здається, весь Amazon використовує on-call service — чергову службу. Усередині команди існує певна ротація, коли щотижня хтось «сидить» на телефоні або пейджері. Ти заступаєш на службу, і якщо в папку твого проєкту впав терміновий тикет, тобі можуть написати, зателефонувати, щоб ти щось зробив з цим просто зараз. І це справді могло статися в будь-який час: і я, і мої колеги прокидалися від дзвінка о другій, третій годині ночі. За це, звичайно, доплачували, але все одно таке накладає відбиток.
При цьому нам ще пощастило: наш проєкт робив тільки одну маленьку сторінку на сайті, у якої не було багато функціонала, тому термінові тикети надходили дуже рідко. А ось у паралельної команди черговий весь тиждень міг практично нічого не робити, окрім цього — лише «гасив пожежі». Напевно, це специфіка вебсервісів, коли може зламатися будь-який з компонентів, і ти, можливо, знаєш, чому він зламався, проте передбачити не можеш. При цьому такий розклад впливає і на роботу загалом, бо один розробник з команди постійно відсутній.
Життя в Ірландії
У Дубліні ми прожили з родиною два роки. Саме місто мені дуже сподобалося. Ми жили в досить тихому районі, не в центрі. Знайти житло було важко, але можливо. Цим займалася дружина.
У Дубліні жити дорого. Та сама оренда коштує
Я чисто заради інтересу проходив співбесіди в інших компаніях у Дубліні. Саме почався ковід, і його плюсом було те, що дуже багато фірм почали працювати віддалено. Коли я проходив інтерв’ю, здається, в HubSpot, вони прямо говорили: «Ви можете в нас сидіти на ремоуті й жити у віддаленій точці Ірландії». Звичайно, так можна заощадити на оренді житла десь удвічі й винаймати будинок або semi-detached house, де в тебе буде більше місця, галявина тощо. Щоправда, не знаю, чи залежить зарплата від того, на ремоуті ти чи ні.
На співбесідах ставив нижню межу в 95 тисяч євро на рік, і зі мною продовжували розмову. На той момент у мене було шість-сім років досвіду. Тож кожен сам може зіставити, скільки має досвіду і на яку зарплату він може претендувати. Однак в Ірландії дуже високі податки. Пам’ятаю, одного місяця я порахував, що в мене ставка податків була близько 45%. Щоправда, це також пов’язано з тим, що Amazon нараховував не тільки базову зарплату, а ще бонуси й акції.
Що ж до інфраструктури в країні, то якщо жити в Дубліні або іншому великому місті, то можна обходитися громадським транспортом. Хоча моя рекомендація — купити велосипед. Так буде навіть швидше, ніж машиною. До ковіду в місті були колосальні затори. Плюс на дорогах велосипедистів скрізь пропускають, є безліч велодоріжок.
Якщо треба вирушити в далеку дорогу, в Ірландії є різноманітні сервіси з погодинної оренди, купа прокатних станцій. Особисто я машину купував. Можна сказати, що це досить дешево, якщо ти маєш європейські права. Якщо ж ні, то це біль — доведеться віддати
Після цього я почав розуміти фішку «євроблях», чому в Європі машини коштують дешево. В Ірландії ти щороку сплачуєш податок на авто, і нещодавно там змінили формули його нарахування. До 2008 року він залежав від об’єму двигуна, потім — від вихлопу CO2. Наприклад, трилітровий Mercedes-Benz Е-класу
Щодо дозвілля, то в Ірландії є де розвернутися: наприклад, взяти напрокат велосипеди та покататися по пагорбах, лісах поряд з Дубліном; записатися в басейн, спортзал зі скелелазною стінкою, школу планеризму; досить недалеко від столиці є гоночна траса.
Народження дитини
В Ірландії в нас народилася дитина. Все, що стосувалося пологів, було на високому рівні та залишило дуже позитивні емоції. Усе доступно пояснювали, не було ніякої грубості чи поспіху. Але при цьому від місцевої медицини в нас залишилися двоякі враження. Коли вже народилася дитина і до нас додому приходили медсестри, здавалося, що вони марнують дуже багато часу: говорять про речі, які для нас є нерелевантними чи не розв’язують проблему. Приміром, ми питали: «Ось у нас така ситуація з годуванням. Що робити?». Медсестра щось пояснює — і це не працює. Наступного разу приходить інша дівчина, ми повторюємо питання, вона відповідає інакше, але це знову не працює. Було таке відчуття, ніби в них є великий мішок із загальними відповідями, з якого вони витягують будь-яку, читають її і кажуть: «Ну, може, це спрацює».
Якось ми прийшли в emergency department. Але нехай назва не вводить в оману, це взагалі не «emergency»: там у приймальній можна просидіти з дитиною чотири години. Потім прийде лікар, дві хвилини огляне її і скаже: «Все добре. Це має пройти за тиждень». Ти приходиш за тиждень, бо проблема залишається, а тобі знову кажуть: «Ну, з нею все добре. Це має пройти за тиждень».
Хоча плюс у тому, що дуже багато речей, пов’язаних з дітьми, роблять абсолютно безплатно. Ті ж пологи. І, здається, для дітей, які народилися в Ірландії, до 6 років будь-яка медицина також безплатна.
При цьому досить важко записатися до деяких лікарів «на зараз». Мій знайомий розповідав, що в його дитини були якісь проблеми із зубами, а на запис до лікаря треба було чекати три чи чотири місяці. Тому вони вирішили, що легше полетіти додому, щоб відвідати стоматолога. Раніше я думав, що це неправда, але так, для якихось планових речей набагато простіше приїхати в Київ. Те саме можна сказати і про все інше, що стосується послуг: там усе організовано не так зручно, а сервіс гірший, ніж в Україні.
Співбесіда у BMW
Чому я вирішив піти з Amazon? По-перше, буквально з перших тижнів життя в Ірландії я зрозумів, що це не моє. Там дуже красиво, приємні люди, але в мене було таке відчуття, що в цій країні треба жити на пенсії. А поки я молодий і сповнений енергії, хочеться чогось більшого. По-друге, мене не надихало те, над чим я працював. Пам’ятаю, наприкінці мого першого року в Amazon у нас був мітинг перед Різдвом. Усі були в захваті від прогресу, якого досягли за рік. Звісно, ми всі тяжко працювали й досить багато зробили, проте в мене склалося враження, що люди так про це говорять, наче вони запустили в космос ракету. Чуваки, ви просто сайт робите, а розмовляєте, наче Ілон Маск! Я зрозумів для себе, що коли в тебе немає щирого бажання щось робити, ти не відчуваєш кайфу від своєї роботи, тобі буде досить складно досягнути успіху. І тієї миті просто ще раз усвідомив, що раз вже я так люблю автомобілі, то треба йти за мрією і займатися саме цим.
Оскільки мені подобається німецька мова, варіант переїхати до Німеччини був найочевиднішим. Що ж до компаній, то вибір був між Audi, Mercedes і BMW. Я не бачив особливих переваг у якоїсь із цих корпорацій, але я вже працював у BMW, тож приблизно знав процеси в компанії. Знайшов у LinkedIn колишнього колегу, який досі там працює, попросив його зробити internal referral. Що цікаво, сталося розсинхронування між рефералом і моєю заявкою. Я надіслав заявку й спершу отримав відмову з тієї причини, що «їм не потрібен спеціаліст мого профілю». Але згодом реферал дійшов до ейчарів, вони пов’язали його з моєю заявкою — і на неї за кілька днів надійшла ствердна відповідь із запрошенням на співбесіду. Хоча я ніби набрав небагато досвіду за два дні :)
Всі інтерв’ю були англійською, серед них технічних — три години. Перше — телефоном, досить легке, хоча, звісно, треба було показати свої навички: було два завдання — для кожного мене попросили написати якусь простеньку функцію. Завдання були рівня «об’єднати два файли»: вони хочуть упевнитися, що ти знаєш, як писати код, що це для тебе не проблема. Лише треба було це зробити граматично, синтаксично правильно, перевірити всі коди повернення, що перший та останній файли відкрилися, вони об’єдналися, запис відбувся успішно тощо. Після цього мене запросили на великий раунд інтерв’ю.
На софтскіли в BMW Car IT відводиться приблизно стільки ж часу, скільки на технічні
Перша частина була швидше на знання архітектури й на те, як ти міркуєш, чи можеш працювати з великими системами. Завдання були на кшталт: у тебе кілька продюсерів, кілька консьюмерів. І до них вони ставили запитання: «Як це все розподілити по класах?», «Можливо, ти вже бачиш патерн, який тут можна застосувати?» та інші. Тобто можна сказати, що то була «високорівнева» розмова. На другому інтерв’ю того ж дня була співбесіда на глибоке знання мови С++. Зокрема, мене попросили написати код для тієї архітектури, яку я накидав годину тому. Виходить, такий плюс-мінус повний цикл розроблення програмних засобів.
Вони також можуть спитати, як це все тестувати, які проблеми ти бачиш, якщо це багатопотоковий застосунок, як розв’язати проблему синхронізації. Питання можуть стосуватися нюансів автомобільної специфіки: «Уяви, що нам треба дуже швидко вимкнутися, а в тебе може бути там 20 потоків. Як ти вважаєш, що треба зробити насамперед?» Природно, вони також хочуть визначити межі твоєї експертизи.
Після трьох годин технічних інтерв’ю ще годину йде співбесіда з тимлідом, де він намагається дізнатися, як ти працюєш у команді, моделює різні ситуації: «Припустімо, у тебе конфлікт з менеджером, як ти поводитимешся?» На цьому інтерв’ю першого дня закінчуються. Якщо ти пройшов їх успішно, тебе запрошують на співбесіду з ейчаром. Там також питають про софтскіли.
Особисто в мене ще було два інтерв’ю з директором BMW Car IT в Ульмі, куди я влаштовувався. Це була незвичайна розмова. Серед решти він пів години розпитував, як я поєднував навчання в університеті й роботу. Взагалі кажуть, що він інтерв’ював людей з погляду того, чи зможуть вони працювати у BMW Car IT: «What kind of material are they?»
Виходить, що на софтскіли відводиться приблизно стільки ж часу, скільки на технічні. Мене це дуже здивувало, бо в Amazon найголовніше інтерв’ю тривало чотири години, три з яких — на технічні завдання, а остання — на System Design. Причому якийсь відсоток кожної години (приблизно по 10 хвилин) були запитання на софтскіли. А у BMW на цьому зроблено акцент. Чув, бувало таке, що людей «валили» саме на ейчар-інтерв’ю. Як на мене, це досить прикро, коли ти пройшов технічну частину, але не пройшов мотиваційну. Правда, тепер стало трохи легше — у BMW Car IT в Ульмі змінився директор. Його офіційна позиція інша, він більше довіряє технічним працівникам і ейчарам у прийнятті рішення — наймати людину чи ні, тому не бере участі в співбесідах.
Про BMW Car IT
Тепер я працюю в BMW Car IT — це підрозділ BMW, що на 100% належить концерну, хоча юридично це окрема особа, там є свій директор, а процеси побудовано абсолютно по-іншому. Гадаю, причиною створення BMW Car IT стало усвідомлення: якщо люди добре виготовляють автомобілі, це не означає, що вони добре розробляють програмні засоби. І навпаки. Тобто це мають бути дві різні структури з цілком різними процесами. BMW як концерн формально купує програмні засоби, які ми розробляємо. Але, природно, ми працюємо як одне ціле.
Ульм — невеликий технічний хаб. Тут будується наукове містечко, куди заїжджають саме міжнародні компанії. Мені видається, що найбільше уваги тут саме автопрому, бо через дорогу від нас розташований Daimler, тобто Mercedes, а ще тут є Continental, Bosch.
У філії BMW в Ульмі працюють до 250 технічних спеціалістів. Скільки їх у мюнхенському офісі — точно не скажу. У нас був один івент у червні, куди приїхала частина людей з нашого офісу й частина звідти, загалом зібралося майже пів тисячі людей. Отже, гадаю, там приблизно вчетверо більше тих, хто пов’язаний з розробленням програмних засобів. Яка з цих двох філій головна, важко сказати. Попри те, що в Мюнхені більше людей, фізичну адресу головної дочірньої компанії вказано саме в Ульмі. Досить поширений перехід працівників між цими філіями.
Головний офіс BMW у Мюнхені
Є ще офіс у Португалії, там приблизно 2000 осіб, наскільки я знаю, та в Індії. Наразі компанія планує розширюватися: ми потребуємо більшої кількості людей, тому що дуже багато завдань, функціонала, які треба реалізувати. Тому залучається й аутсорс — знаю точно про три компанії, з якими ми співпрацюємо.
Цікаво, що BMW з якихось причин любить припиняти роботу з підрядниками, навіть якщо їх усе влаштовує. Я чув, як хтось скаржився: команда працювала з аутсорсинговою компанією, все було добре, але згідно з корпоративною політикою за якийсь час із ними довелося припинити співпрацю й шукати щось нове. Як на мене, це має негативні наслідки, адже аутсорс-компанія розуміє, що за 3, 6, 12 місяців з ними не продовжуватимуть контракт, а тому немає сенсу напружуватися.
Те, що я раніше працював на BMW на аутсорсі, стовідсотково мені допомогло. По-перше, звісно, якби не знайомий, я б не мав рефералу, що допоміг мені влаштуватися. По-друге, досвід сам по собі корисний. Я розуміюся на деяких технічних нюансах, знаю основні компоненти. Але, як я вже згадував, робота на аутсорсі вирізняється тим, що нема достатньої мотивації. А всередині компанії, попри те, що ти є частиною великого механізму, все одно відчуваєш, що володієш необмеженими ресурсами. Якщо в тебе в голові народиться ідея і ти зможеш довести її бізнес-цінність, її почнуть утілювати. Для пропозиції чогось нового розроблено різні механізми й форми.
Я у захваті від того, що можна працювати над речами, що потенційно використовуватимуться по всьому світу, по всіх заводах, твою програму встановлять у мільйони машин. Як на мене, це круто. В аутсорсі нема такого масштабу, розмаху, а тут у мене є відчуття, ніби я запускаю в космос ракету.
Особливості роботи
У нашому офісі є хлопці, які займаються всім, що пов’язано з penetration testing, побудуванням систем безпеки. А в Мюнхені, зокрема, роблять мобільний фреймворк і є відділ, який розробляє системи безпілотного кермування. У них є спеціальний полігон, де вони це тестують.
В Ульмі також розробляють software platform, тобто все, що безпосередньо стосується розроблення систем, на яких крутяться застосунки BMW: розроблення контейнерів, доопрацювання операційної системи тощо. Нещодавно наш компонент перейшов на іншу архітектуру — ARM.
У мене вже сплив випробувальний строк, який тривав пів року. Мені здається, це надто довго. Наприклад, в Amazon було три місяці.
Тепер я займаюся проєктом оновлення програмних засобів у машині. Взагалі BMW досить багато хваляться тим, що вони одні з перших запустили оновлення over-the-air. По суті, це працює так само, як у телефоні: ти просто завантажуєш файл оновлення й натискаєш кнопочку «встановити». Звісно, за лаштунками все набагато складніше. Треба дуже багато файлів установити, все ще раз перевірити. І це робиться з огляду на те, що будь-якої миті завантаження можуть перервати, вимкнути пристрій, і доведеться чекати наступного перезавантаження.
Інший проєкт, над яким я працював в Luxoft на аутсорсі, — Telematics. Це окремий застосунок, який, по суті, слугує проксі до бекенду чи інтернету. Ти можеш зробити запит цьому компоненту завантажити якийсь файл. Там весь час щось поліпшувалося: додавалася підтримка паралельного завантаження, паузи завантаження, інші фічі.
Також був проєкт, пов’язаний з електронними сім-картками, менеджментом їхніх профілів. Є й інші proofs of concept, про які багато розповідати не можу, але вони в основному пов’язані з контейнеризацією і дослідженням того, як ми можемо застосовувати механізми нашої комунікації між різними контейнерами. Тому що раніше ми лише надавали механізми комунікації між одними й тими самими застосунками в межах одного пристрою і між різними застосунками на різних пристроях. Тобто контейнер — це відносно нова для нас справа.
Чи обов’язково знати німецьку, щоб працювати тут? Ні, можна на 100% обійтися без неї. Але особисто мені знання мови допомагає, бо так чи інакше маєш справу з великою кількістю тексту німецькою. Пам’ятаю, коли я працював у Luxoft, був такий випадок: хтось із BMW надіслав скриншот досить великого тексту німецькою і спитав: «Чи є хтось, хто зможе прочитати, щоб ми просто не передруковували це з картинки?» Вже тоді я міг більш-менш швидко зрозуміти, про що там ідеться. Отже, знання мови все ж таки допомагає. Приблизно половина паперової документації німецькою мовою, решта — англійською. Є багато термінів, абревіатур, взятих з німецької. Коментарі в коді іноді трапляються німецькою.
Звісно, в побуті знання мови необхідне. Тут на півдні країни дуже мало людей, які можуть бодай трохи розмовляти англійською. Мені здалося, що ми знаємо німецьку краще, ніж вони англійську.
Порівняння Німеччини та Ірландії
Айтівці — інтернаціональний народ. Ментально я поставив би Німеччину десь посередині між Ірландією та Україною.
Як я вже казав, в Ірландії, мабуть, добре жити на пенсії, але не хочеться працювати. Це дуже красива, спокійна країна, але схожа на сонне царство — мало чого відбувається. У Німеччині все набагато жвавіше, люди охочіше говорять про бізнес, тут більше стартапів. Звісно, всі вони розташовані в Берліні, хоча Мюнхен — теж досить великий хаб IT-компаній. ВВП тільки Баварії в 1,5 рази більше ВВП всієї Ірландії, і це відчувається.
У вільний час я співпрацюю з українськими хлопцями, які відкрили свою ІТ-компанію в Німеччині — Latrock. Коли я почав вникати у процеси, вражався масштабами ведення ІТ-бізнесу в цій країні. Можна сказати, що тут я теж частково отримую відчуття «кооперації», яке було у США. Люди з інших компаній досить легко йдуть на контакт, обговорюють ідеї, готові домовлятися. Мені це приносить величезне задоволення.
Вулиці німецького міста Ульм, в якому працює Микита Качко
Що ще подобається: відстань між одними з найбільших міст Німеччини — Штутгартом і Мюнхеном — буквально година їзди машиною. І, природно, мене вразили автобани. Це ж яку треба мати демократію, щоб можна було їздити без обмеження швидкості!
Ще, можливо, комусь видасться дивним спостереженням, та мені в Німеччині більше подобаються машини. В Ірландії інший підхід до вибору авто: слабенькі двигуни, великі диски, люки (там чомусь їх усі дуже полюбляють). І багато хто вибирає тридверні машини. Тобто в Україні, приміром, Volkswagen Polo — це 100% буде п’ятидверний хетчбек, а в Ірландії — тридверний. Основна частина машин — це дволітрові дизелі, навіть якщо це великі седани. Плюс ніхто не ставитиме дорогу комплектацію, хорошу музику, асистента смуг чи круїз-контроль, який тримає дистанцію.
Взагалі релокація для мене відкрила інший погляд на світ. Ще в Ірландії я помітив, що почуваюся спокійніше. Я працюю «в білу», не маю мороки з ФОПами. Так, тут великі податки, але все влаштовано більш продумано. Дуже багато проблем вирішено ще на початковій стадії. Приміром, у нас часто чув дискусії з приводу того, де мають їздити електросамокати — дорогами чи тротуарами. В Ірландії таке питання не виникає: усі їздять разом з велосипедами по велодоріжках. У Німеччині майже на кожному тротуарі є знак, який вказує, хто тут може пересуватися, плюс для прокатних самокатів є спеціальні зелені номери.
В Україні багато розмов про потребу намордника під час вигулювання собак «бійцівських» порід. У Німеччині досить давно визначили поняття Rasseliste — породи з цього спеціального переліку важко утримувати, іноді треба складати тест на виховання собаки. Як результат — агресивних собак тут дуже мало.
Моя теорія: якщо підвищувати середньостатистичний рівень комфорту людей, то вони зможуть витрачати свою енергію на подолання складніших проблем. Від цього вони щасливіші, а ефективність їхньої праці вища. Це породжує досить цікаві феномени, наприклад толерантність до дрібних порушень на дорозі. В Ірландії вважається нормальним на трасі перевищувати швидкість на
Інновації в автопромі
Мені здається, тепер в автопромі є три основні тренди: перший — електрифікація всього, другий — перехід від фізичних кнопок до екранів і третій — автопілот. Це те, чого чекають від машин у найближчі
З погляду «заліза» автомобілі починають ставати нездатними до розвитку. Якщо ми говоримо про двигуни внутрішнього згоряння, то продуктивність машин (бензинових і дизельних) тепер плюс-мінус така сама, як і 10 років тому. Така ж історія і з витратами палива. Так, тепер більше переходять на електричний формат, але мені видається, що цей напрям досить швидко досягне свого піка. Головний прогрес у найближче десятиріччя станеться саме в Infotainment, тобто всього, що всередині машини. Ми вже тепер бачимо, як розвинулась інтеграція з мобільними пристроями, навігацією, є можливість оновлювати абсолютно будь-який контролер дистанційно. І всі ці інновації набиратимуть темпи.
У 2022 році BMW Group почала продавати передплату на підігрів сидінь у кількох країнах. Треба розуміти, що такі технічні вирішення вочевидь мають уже фізично бути в самому автомобілі. А вмикатиметься й вимикатиметься все за командою з бекенду. Здається, хтось питав на одному з таунголів, і відповідь була така, що це не буде якийсь конфігураційний файл, тобто не буде можливості «перепрошити» машину так, щоб якимсь неявним чином розблокувати функціонал. Беручи до уваги, що тепер майже всі машини BMW спілкуються так чи інакше з сервером, усе це проходить через наш компонент.
Щодо автопілота, мені вбачається, що це один з найприродніших шляхів еволюції автомобілів. Якщо це технологічний прорив, який ми можемо здійснити, — то чом би й ні? Літаки теж не могли літати самі якийсь час тому, але технології дали змогу це зробити. Тепер у медицині є роботи, які можуть виконувати певні завдання автономно. Інженери змогли таке створити. Те ж саме можна зробити з машинами.
Робота над автопроєктами
Я з дитинства обожнюю машини, постійно про них читаю, дивлюся відео. Своє перше авто Volkswagen Passat 2008 року я купив на свій день народження, мені було 22 роки. До того я просто марив цією машиною, жив нею. Було дуже боляче її продавати, коли їхав до Ірландії.
В Ірландії я взяв собі BMW: просто хотілося подивитися, що воно таке. Цікаво, що коли я приїхав до Німеччини, то подумав, що купувати плюс-мінус таку саму машину не хочу. І взяв Mercedes. Напевно, це дуже дивно — працювати в BMW і їздити на Mercedes :) Взагалі це чудова тема, жарт to break the ice, коли ти знайомишся з новим колегою: «Я їжджу на Mercedes, ось так от! BMW — туфта якась».
До речі, у BMW після випробувального строку є можливість за дуже вигідною схемою орендувати машину компанії. Ти її замовляєш як нову, але орендуєш за відсоток вартості за місяць. Відсоток розраховується залежно від різних чинників. Наприклад, якщо це гібрид чи електромобіль — відсоток менший. На цю суму ще додається якийсь податок на відстань, яку ти проїжджаєш від свого будинку до роботи. Плюс у цю суму входить паливо по Німеччині. Є спеціальна мережа заправок, де ти можеш заправлятися безплатно — просто даєш картку компанії. У середньому сума виходить приблизно 400 євро на місяць. Оскільки гібриди найдешевші, 90% людей беруть саме їх, найчастіше «трійку» або X3.
Авто, яке Микита орендував у компанії впродовж 3 місяців
Чи є захоплення машинами обов’язковою умовою для роботи в автопромі? Я б так сказав, що ні. Наприклад, якщо ти знаєшся на Linux, тебе цікавить Embedded Development, розроблення систем, контейнеризація — тобі буде чим займатися в тому ж таки BMW.
Взагалі, що стосується технологій в автомобільній сфері, то тут різні вимоги. Усе залежить від того, у якому відділі ти працюватимеш. Можна безпосередньо піти на розроблення гардверної частини — тоді програмування тобі, може, взагалі буде не потрібне. А можна, якщо ти працюєш на С#, писати десктопні застосунки для співробітників на сервісній станції.
Тепер усе більше автовиробників звертають увагу на розроблення телефонних застосунків, особливо у зв’язку з переходом на електричні методи пересування. Можно ставити застосунки, що працюють як ключ: підходиш просто зі смартфоном до машини — і вона тебе розпізнає. Чи застосунок знає, який у тебе пробіг в автомобілі, і може порекомендувати записатися на наступний плановий сервіс. Або, навіть знаючи, яка помилка вискочила, що там зламалося, автоматично записати на ремонт. Звичайно, для цього потрібні люди, які можуть робити фронтенд для мобільного застосунку, писати якісь сервіси на бекенді.
Для того, з чим конкретно працюю я, — написання прикладних застосунків, контейнеризації, — мені потрібна С++ і розуміння того, як влаштовано Linux. І, звісно, є ще дуже багато внутрішніх утиліт, у більшості вони призначені для комунікації між застосунками на одному пристрої та між різними пристроями. Але це вже нішеві речі. Хоча один транспортний протокол BMW вилили в opensource — він називається joynr. Це по суті просто бібліотека для зв’язку з бекендом.
Звісно, навіть при тому, що я з дитинства захоплююся машинами, мені було важко розібратися в усіх тонкощах розроблення саме в автопромі. Пам’ятаю, у Continental ми приділяли багато уваги розпізнаванню поточного часу. Виявилося, це нетривіальна задача, коли йдеться про автомобіль, якщо в тебе повністю вимкнулося живлення. А наслідки можуть бути досить серйозними. Наприклад, вежі стільникового зв’язку з певною періодичністю транслюють поточний час. Ти можеш зробити пристрій, який може змусити машину думати, що зараз інший рік. І раз — сертифікат, термін якого давно сплив, знову «валідний». Звісно, це вже порушення безпеки.
Цікавий момент: логіка виконання програми залежала від того, яка напруга тепер у мережі. Якщо двигун не працює, то напруга мережі становить приблизно 12 вольтів. А якщо працює, то крутиться генератор, напруга підвищується до 13,8 вольта і більше. І на пристрої ці рівні по-різному сприймаються. Природно, ти про таке не думаєш, поки не почнеш працювати в автомобільній сфері. Але мені в цьому було захопливо розбиратися.
Тепер у BMW ми працюємо над проєктом оновлення всієї машини. І я в усіх деталях уявляю, чому реалізовані ті чи інші технічні вирішення. Наприклад, одна з умов для початку оновлення — певний відсоток заряду акумулятора, оскільки оновлення — це енерговитратний процес, ми не хочемо, щоб машина повністю розрядилася і не змогла запуститися. Є й інші умови: авто має бути на стоянковому гальмі, а дах у кабріолетів — піднятий. Це страхує нас від того, що може піти не так. Коли ти маєш якийсь бекграунд, на твої запитання надходить набагато більше відповідей.
Для написання прикладних застосунків і контейнеризації мені потрібна С++ і розуміння того, як влаштовано Linux
Можна провести паралель з Amazon. Там я просто знав, що ми робимо фронтенд, є запит до downstream-сервісу, який дає нам якийсь результат. Я сильно не занурювався, наскільки часто ми можемо робити такий запит, чому вони нам відповідають, припустімо, такою-то структурою, чому ми маємо робити три запити замість одного, щоб дістати кілька шматків інформації, чому вони іноді об’єднують три запити в один.
Звісно, було багато мітингів, де нам пояснювали різні процеси, що відбувається з погляду всієї архітектури проєкту. Але для цього треба було їх відвідувати, активно слухати, ставити запитання, розбиратися. Потрібні були зусилля та час. А тут це приходить якось само собою. Якось нам представляли гігантський екран у машині, який висувається з даху перед задніми сидіннями. І відразу ж виникло серйозне запитання, навіть не стосовно програмування: як і що робити з цим монітором у разі аварії? Він має якось відірватися чи кудись сховатись? Тому коли до нас на проєкт прийшла вимога — додати умову «прибрати монітор для початку оновлення», питань «навіщо» не виникало.
Я колись давно почув думку: щоб стати хорошим програмістом, тобі недостатньо робити лише ті завдання, які тобі дають, треба виходити за межі й розбиратися, чому ти це робиш. Так ти можеш усвідомити, що треба, щоб наступного разу проблем не виникало. І коли та сфера, у якій ти працюєш, тобі цікава, ти «фанатієш» від неї, — всі ці дослідження відбуваються самі собою. Так набагато простіше розвиватися. Якщо взяти відомих й успішних людей, як-от Джефф Безос або Ілон Маск, — вони всі «фанатіють» від того, що роблять. Коли ти маєш щире бажання зробити щось круте, ти стаєш «візіонером», і цим ти заражаєш усіх навколо.
14 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.