Андрей Шевченко — разработчик ядра в Intel Finland Oy. Он родился в Донецке, где и провел первые 30 лет жизни, окончил факультет радиотехники в Донецком национальном университете. За плечами Андрея более десяти лет опыта разработки программного обеспечения в среде Linux. В 2008 году он получил оффер от Nokia в Финляндии, а потом перебрался в Intel. На днях Андрей выступил на Root Linux Conference 2018. В интервью для DOU он рассказал о том, как связался с ІТ, о «сушке» мозгов у программистов, переезде в Финляндию и важности путешествий по миру.
— На днях вас пригласили выступать на Root Linux Conference 2018. Как всё прошло, о чём рассказывали?
Приглашение было приятным сюрпризом. Последнее время я много смотрю на чужой код как внутри Intel, так и вне компании. Заметил, что даже при всех современных инструментах для улучшения качества кода разработчики, в том числе и довольно опытные, допускают часто одни и те же ошибки. Делился опытом по этому поводу.
— Вы давно в профессии. С чего всё началось?
Думаю, с
— Тот случай, когда хобби переросло в нечто большое?
Да. Это как раз и повлияло на моё дальнейшее увлечение электроникой и выбор физического факультета Донецкого государственного университета. Учился на специальности «Радиофизика». В школе, помню, начал играться в конструктор — сам собрал себе свой первый «Спектрум».
— Как вы это сделали? Где брали детали?
Родственник подарил осциллограф, а паяльник и прочее у меня и так было. Поэтому собрать и отладить особого труда не составило, если понимаешь, куда смотреть и на что обращать внимание. Детали в то время только на радиорынке можно было приобрести. Много, конечно, досталось от родственника со списания, научился распаивать платы обратно на компоненты и использовать их снова, хотя по ГОСТам, конечно, так делать нельзя.
После самосборного «Спектрума», а их было несколько, уже в школе начал осваивать PC, начиная с XT. Совместимые клоны советского производства, можно сказать, прошли мимо меня. Хотя я ходил в гости в одно научно-техническое бюро, чтобы поиграть на «Искре 1030». Помню, играли тогда в классику того времени: Popcorn — вариация игры Arkanoid, Tetris 3D, Paratrooper.
— А программирование?
А вот программированием я увлёкся, в некотором смысле, благодаря родителям, так как им по работе необходимо было делать инженерные расчёты на микрокалькуляторе. Тогда это был МК-61, а впоследствии мама приобрела в комиссионке Casio PB-220 (советский клон подобного устройства назывался МК-85) — там был встроенный Basic, алфавитно-цифровой дисплей, 10 килобайт ОЗУ, которые я много лет спустя проапгрейдил до 16. Ещё мне повезло неоднократно побывать, когда учился в
К моменту, когда у меня была уже более мощная машина на 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-репозитории.
— Как вам удалось уехать в Финляндию?
Родители буквально выталкивали меня за рубеж. Пик моего обучения в школе — это несколько первых лет после распада СССР, в Украине люди старшего поколения очень боялись голода и повторения
— Что вы уже умели в то время?
Немножко разбирался в 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, где проходит известный ежегодный оперный фестиваль. Словами не передать ощущение простора, свободы, красоты природы. Одновременно с этим государство вкладывает довольно большие деньги в инфраструктуру, поэтому даже вдали от города не чувствуешь себя оторванным от цивилизации. И сейчас я полностью разделяю такую мечту.