Разработчик ядра и драйверов 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, Tetris 3D, 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, где проходит известный ежегодный оперный фестиваль. Словами не передать ощущение простора, свободы, красоты природы. Одновременно с этим государство вкладывает довольно большие деньги в инфраструктуру, поэтому даже вдали от города не чувствуешь себя оторванным от цивилизации. И сейчас я полностью разделяю такую мечту.

Похожие статьи:
Luxoft International передала всю російську частку бізнесу до IT-групи IBS. Вона належить бізнесмену Антону Карачинському, який був одним...
Я выступал с аналогичной темой на IT fest, и, судя по реакции зала, людям было интересно. Формат доклада сжатый, многое пришлось...
Міністерство оборони України планує запровадити електронний військовий квиток, запустити єдиний реєстр призовників,...
Заканчивая обучение в бизнес-школе и выбирая тему для диссертации, я задался вопросом: почему отношения между...
Кропивницький — місто в центрі України з населенням близько 230 тисяч осіб. Хтось вважає його...
Яндекс.Метрика