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

Похожие статьи:
Компания Samsung Electronics объявила о старте акции для всех желающих опробовать смартфон Samsung Galaxy Note5: приобретая Samsung Galaxy Note5 в одном из 109...
Міноборони пояснило, чому позначка «12 тисяч загиблих окупантів» не росте котрий день, а на Чорнобильській АЕС відновили...
З перших днів війни ми висвітлюємо, як ІТ-індустрія реагує, допомагає та працює в умовах російської агресії. У новому...
Привіт! Мене звати Дмитро Стрілецький, я Python-розробник. Як і ви, я теж колись шукав роботу — і не один раз. У цій...
Цель семинара-практикума от зарегистрированного поставщика обучения PMI — подготовить слушателей к успешному...
Яндекс.Метрика