Розробник ядра та драйверів Intel — про входження в професію, "сушці" мізків і релокації в Фінляндії

Андрій Шевченко — розробник ядра Intel Finland Oy. Він народився в Донецьку, де і провів перші 30 років життя, закінчив факультет радіотехніки в Донецькому національному університеті. За плечима Андрія понад десять років досвіду розробки програмного забезпечення в середовищі Linux. У 2008 році він отримав оффер від Nokia у Фінляндії, а потім перебрався в Intel. Днями Андрій виступив на Root Linux Conference 2018. В інтерв'ю для DOU він розповів про те, як зв'язався з ІТ, про «сушці» мізків у програмістів, переїзді в Фінляндію і важливість подорожей по світу.

— Днями вас запросили виступати на Root Linux Conference 2018. Як все пройшло, про що розповідали?

Запрошення було приємним сюрпризом. Останнім часом я багато дивлюся на чужий код як всередині Intel, так і поза компанії. Помітив, що навіть при всіх сучасних інструментах для поліпшення якості коду розробники, в тому числі і досить досвідчені, часто допускають одні і ті ж помилки. Ділився досвідом з цього приводу.

— Ви давно в професії. З чого все почалося?

Думаю, з 4-го класу. Ухил саме в IT пішов тоді, коли я познайомився з одним товаришем, який збирав цифрову техніку. Якось він приніс у школу прикольну річ, яка видавала музичні звуки, якщо доторкнутися пальцем до її сенсору — звичайної офісної скріпці, вплавленной в коробку червоного кольору від звичайного дверного дзвінка. В цьому було щось типу вау-ефекту. Мені просто подобалася і подобається радіоелектроніка, хоча я вже давно нічого не збираю складніше подовжувача.

— Той випадок, коли хобі переросло в щось велике?

Так. Це як раз і вплинуло на моє подальше захоплення електронікою і вибір фізичного факультету Донецького державного університету. Навчався на спеціальності «Радіофізика». У школі, пам'ятаю, почав гратися в конструктор — сам зібрав собі свій перший «Спектрум».

— Як ви це зробили? Де брали деталі?

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

Після самосборного «Спектрума», а їх було кілька, вже в школі почав освоювати PC, починаючи з XT. Сумісні клони радянського виробництва, можна сказати, пройшли повз мене. Хоча я ходив у гості в одне науково-технічне бюро, щоб пограти на «Іскрі 1030». Пам'ятаю, грали тоді в класику того часу: Popcorn — варіація гри Arkanoid, 3D Tetris, Paratrooper.

— А програмування?

А ось я захопився програмуванням, в деякому розумінні, завдяки батькам, так як їм по роботі необхідно було робити інженерні розрахунки на микрокалькуляторе. Тоді це був МК-61, а згодом мама придбала в комісійному магазині Casio PB-220 (радянський клон подібного пристрою називався МК-85) — там був вбудований Basic, алфавітно-цифровий дисплей, 10 кілобайт ОПЕРАТИВНОЇ пам'яті, які я багато років потому проапгрейділі до 16. Ще мені пощастило неодноразово побувати, коли навчався в 5-7 класах, в машинному залі з мейнфреймом радянського виробництва — комплекс ЕС1010 (радянський клон IBM 360).

До моменту, коли у мене була вже більш потужна машина на i486 архітектурі, я встиг влитися в ряди учасників офлайн-мережі Фідонет». Вузол мережі, розташований на моєму домашньому комп'ютері, часто зависав, перебуваючи під управлінням під MS DOS. Це настільки мене замучило, а саме в колах фидошников було багато розмов про *nix подібні ОС (FreeBSD, Solaris, Linux), що я вирішив спробувати встановити Linux. Це перевернуло моє життя в черговий раз. Вражений «балакучістю» системи, зручністю використання та іншими фішками, особливо в області мережевих технологій, я серйозно «підсів» на неї. Так заклався фактично вектор моєї майбутньої кар'єри.

— Над чим ви працюєте в компанії Intel Finland Oy?

В основному над розробкою драйверів для пристроїв, застосовуваних в процесорах Intel, точніше треба говорити SoCs, Systems-on-Chips — системах-на-чіпах. Я один з активних розробників ядра в цілому, наприклад, за 2017 рік брав участь у 3 з 5 випущених релізів.

Наприклад, я допомагаю колезі за попередньою рев'ю коду для підтримки технології Thunderbolt нового покоління. Вона була додана в ядро не співробітниками Intel, а людиною, який займався реверс-інжиніринг протоколу. Друге покоління і наступні — вже нами — Intel.

Пам'ятаю випадок, коли я ще працював у Донецьку в ASPLinux. Наші замовники з Росії хотіли отримувати працездатний дистрибутив Linux на ноутбуках, які вони збирали під своєю маркою. Одним з каменів спотикання був звук. У ядрі Linux далеко не завжди була підтримка звуку для дешевих, але дуже поширених китайських ноутбуків, а що говорити за не такий масовий російський ринок? В одному з таких ноутбуків виявився кодек компанії Realtek з матрицею комутації та іншими фішками, які раніше не зустрічалися (принаймні з точки зору підтримки в Linux), тому звуків ноутбук не видавав.

Тоді я був ще тільки початківцям розробником ядра, тому типового підходу до вирішення такого роду проблеми не знав. Возився практично методом проб і помилок близько тижня, поки не здогадався завантажити технічну документацію на нього. Через 5 хвилин читання на третьому аркуші, де була приведена схема нутрощів, я зрозумів у чому джерело проблеми. Далі лише залишилася рутина по впровадженню. Результат вже більше 10 років в ядрі, а саме зміна a8848bd64761 («Initial support of the Mitac 8252D (based on ALC883)»). Хто працює з ядром, легко знайде його в git-репозиторії.

— Як вам вдалося поїхати в Фінляндію?

Батьки буквально виштовхували мене за кордон. Пік мого навчання в школі — це кілька перших років після розпаду СРСР, в Україні люди старшого покоління дуже боялися голоду і повторення 50-х. І я шукав цікаве місце, де мої навички могли б стати в нагоді.

— Що ви вже вміли в той час?

Трошки розбирався в Linux як розробник, хоча був лише просунутим користувачем за великим рахунком. Плюс освіту інженера-електронщика. Потім за порадою друзів набрався трохи досвіду в мовах програмування, зокрема в Python, худо-бідно я знав C, навіть був незвичайний досвід з VisualBasic і Borland C. Разом з цим, у двох різних компаніях мене брали на роботу як розробника під Windows, але, на щастя, не склалося.

Я потрапив в Nokia на проект Maemo в 2009 році. Але доля Maemo обірвалося разом з приходом Stephen Elop в компанію. Intel вже тоді співпрацювала в цій області з Nokia, тому вона була однією з перших компаній, які масово интервьюировали інженерів Nokia, точніше саме тих, хто працював у проекті Maemo. Так я опинився в Intel Finland Oy.

— Ви там працюєте близько семи років. Як би ви описали цей період?

По-перше, це американська корпорація зі світовими стандартами роботи. Треба зазначити, що на відміну від стагнуючої обстановки в Nokia в 2011 році, перехід і робота в Intel — як ковток свіжого повітря. На Хабре є стаття про те, чому загнулася Nokia. Більше досвіду, звичайно, я отримав, працюючи над новими технологіями, а також спілкуючись з досвідченими колегами та іншими розробниками ядра Linux.

Крім цього у вільний час довів до розуму підтримку IoT платформи Intel Edison (на жаль, вона більше не виробляється і не продається) в ядрі, в тому числі експерименти з впровадженням на неї ACPI , чого не замислювалося спочатку.

Все разом дало мені більше розуміння того, як влаштовано і розробляються сучасні чіпи, як виглядає всередині ядро Linux, як все це разом взаємодіє. Дивовижний приклад був з драйвером DMA (прямого доступу до пам'яті) в старих покоління чіпсетів, коли з'ясувалося, що цей же блок, авторства Synopsys, використовується в деяких чіпах архітектури PowerPC. Там взагалі погляд на інтеграцію блоків між собою особливий. Як-то раніше для тестування цього драйвера я в Києві купив плату для розробників на архітектурі AVR32 (це Big Endian архітектура, в той час як Intel — Little Endian). Купив з рук, тому що офіційно скрізь стояло «out of stock». Цікаво, що моє неодноразове «ниття» з приводу поламаного ядра для цієї архітектури в кінцевому рахунку призвело до її видалення з дерева исходников.

— Як це вийшло?

Багато чинників. По-перше, немає підтримки серед компіляторів. Був кустарний, древній від Atmel.

По-друге, забуття самої архітектури авторами, а саме Atmel, тим більше компанію недавно прикупив Microchip.

По-третє, перестало збиратися ядро і ніхто не поскаржився на це протягом цілого релізу, тобто практично півроку. Це означає, що живих користувачів десь 2,5 людини. В наступному релізі ядра видалять ще 8 маргінальних архітектур. Можу припустити, що це результат обговорень навколо AVR32.

— Як це — переїжджати, коли тобі за 30 років?

Вік не важливий, коли є мотивація і, що називається, «палаючі очі».

— З чого почалася ваша релокация у Фінляндії? Які думки у вас були?

Забігаючи вперед, скажу: коли я вже прилетів, мене зустрічав мій майбутній бос. Його реакція була невимовно виражена на обличчі. Він був дуже здивований людині, переїздить в іншу країну з сумкою лише 8,5 кг

Але почалося все у 2008 році, коли я отримав довгоочікуваний контракт і погодився на нього. Став готуватися до переїзду. Однак, це виглядало зовсім не так, як багато хто собі це уявляють. Ні, я не побіг розпродавати начиння або квартиру, не побіг складати список необхідного, не пішов «прощатися» з друзями. Чому? Не відчував, що це переїзд, зміна життя у всіх відносинах.

Основна частина підготовки була, як не дивно, — красиво піти з поточного на той момент місця роботи, де я був лише місяць з невеликим. Не знаю, що зіграло мені на руку, результат моєї роботи, тим не менше, був очевидний і незаперечний. Потрібно було писати драйвер, я накидав прототип, який працював в альфа-стадії. Фактично це був перший в принципі повноцінний драйвер, написаний мною. Моє тодішнє начальство намагалося мене втримати, як могло. Бесіди провели: начальник відділу кадрів, менеджер проекту, головний бос навіть запропонував 1,5 х коефіцієнт до зарплати.

— Як піти добре?

Я пояснював, що моя мета — попрацювати в західній компанії. Наявність мети і великого бажання її досягти дає правильні аргументи в набили оскому дискусіях про звільнення. До речі, саме цей місяць викликає в потенційних роботодавців додаткові питання на інтерв'ю. «Хіба можна було щось зробити за такий короткий термін?», — так зазвичай думають рекрутери і співробітники відділу кадрів.

— Розкажіть про життя у Фінляндії. В цьому році Фінляндія очолила рейтинг країн у Всесвітній доповіді про щастя — World Happiness Report. Ви живете в країні вже майже десять років.

У матеріальному плані Фінляндія — країна соціалізму з людським обличчям. З іншого боку, коли бачиш неідеальності в життєвих ситуаціях, починаєш замислюватися, що деякі люди живуть з твоїх податків, але при цьому пальцем об палець не вдарять, щоб своє життя якось привести в порядок.

У Фінляндії потрібно бути готовим до темряви і «зеленої зими». Як не дивно сонячних днів у Гельсінкі більше, ніж у Парижі. Літо тут просто ідеальне — ні холодно, ні жарко. Я перестав брати відпустки влітку, традиційно ж фіни йдуть у відпустку в липні на цілий місяць — це самий тихий сезон в році.

— Чим ви захоплюєтеся? Розкажіть про своїх хобі.

Я люблю подорожувати різними нових місцях, люблю пограти в бадмінтон і іноді дивую гостей своїми пекарські здібностями. Готування швидше творчість, ніж ремесло. Подорожі дають можливість перепочити від рутини, щоб мозок не скисал, в той же час — це і нові знайомства, і нова інформація. Бадмінтон, як і будь-який інший вид активного спорту, — ліки від довгого сидіння в офісі.

Хобі для програміста досить важливо, так як офісна або навіть домашня робота — це не те, чим ти будеш цікавий людям, це тобі не допоможе знаходити цікаві теми для розмови. Більш того, програмування, в деякому розумінні, «сушить мозок». Про це «сушку» я вперше почув від свого викладача інформатики ще в 10 класі, а відчув, коли зустрічалися задачі, що вимагають не настільки великих зусиль в імплементації, наскільки продумування, як саме їх втілити, і на додаток, кілька пробних імплементацій, щоб зрозуміти — рухаємося в правильному напрямку. Тому дуже важливо мозок «масажувати». Хобі, не пов'язані з IT, якраз виконують цю задачу.

— Ви багато подорожуєте і часто знайомитесь з новими культурами. Що це вам дало?

Особливе враження на мене справив автотур в Хорватію, коли ми взяли машину напрокат, також поїздки до Відня і Швейцарію. В окрему категорію поставлю Барселону — місто, в яке хочеться повертатися. Там дуже цікава атмосфера і приємно гуляти пішки, незважаючи на відстані. Я майже як Гауді, який ходив з будинку, розташованого в парку Гуеля, до собору Святого Сімейства пішки. У мене в основному європейський досвід подорожей. Це Прибалтика і Лісабон, Грузія і Франція, перелік і короткий і довжин одночасно.

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

— Спробуйте згадати ваш перший візит в Україну після переїзду Фінляндію. Що вам перше кинулося в очі?

Різниця між двома країнами дуже відчувається. Перша поїздка була після 6 місяців на чужині. Прилітаю в Бориспіль. Тоді терміналу D ще не було, а F не обладнано телетрапами. Я з посмішкою на обличчі спускаюся з трапа, а внизу стоїть співробітниця прикордонної служби або іншої подібної організації, в загальному сек'юріті. І дивиться на мене таким суворим поглядом, що моя посмішка метаморфозно зникає з обличчя, проходячи стадію чеширського кота і наступну за нею Гуинплена. Тоді я думав, що якщо буду продовжувати посміхатися, то або в психлікарню заберуть, або шмон по повній влаштують.

— Плануєте повертатися?

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

— Яку пораду ви б дали собі, якби повернулися в минуле?

Більше приділяти увагу вивченню іноземних мов. Чому? Нещодавно в одному зі своїх останніх фільмів «Inglourious Basterds» режисер Квентін Тарантіно вирішив використати мова на трьох європейських мовах і, природно, без дубляжу. Це говорить про багато що.

— Про що мрієте?

Дім біля озера і в радіусі двох кілометрів ні душі — фінська мрія, має раціональне пояснення. Я їздив на машині трохи в так звану «країну тисячі озер». Насправді їх набагато більше, це район Savonlinna, де проходить щорічний оперний фестиваль. Словами не передати відчуття простору, свободи, краси природи. Одночасно з цим держава вкладає чималі гроші в інфраструктуру, тому навіть далеко від міста не відчуваєш себе відірваним від цивілізації. І зараз я повністю поділяю таку мрію.

Опубліковано: 23/04/18 @ 07:33
Розділ Різне

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

DevOps дайджест #19: Jenkins X і DevOps інтернатура
Поради сеньйорів: як прокачати знання junior Ruby
Мій звіт про конференції Страйк 2018 в Ульяновську
DOU Hobby: Історичний бій — видовищні змагання у середньовічних обладунках
Дослідник нейромереж — про півсотлітню історію штучного інтелекту, свідомість АІ та розвиток людства