Украинец, который программирует Falcon: Алексей Пахунов, старший инженер полетного ПО в SpaceX

31136
6

30 мая компания SpaceX успешно запустила свой корабль Crew Dragon. Он уже пристыковался к МКС, миссия проходит в штатном режиме. В том, чтобы все получилось, принимает участие и украинец Алексей Пахунов. Редакция написала о нем текст еще в 2018 году, а после запуска Crew Dragon, который выводила в космос ракета Falcon 9, вспоминает его еще раз.


Весь мир гудит об успешном запуске ракеты-носителя сверхтяжелого класса Falcon Heavy, которую компания Илона Маска осуществила 6 февраля. Это без преувеличения историческое событие, все причастные к нему люди стали героями. Один из них — украинец Алексей Пахунов, который сыграл важную роль в космических приключениях SpaceX. Он был ответственным за успешную посадку Falcon 9 в 2015 году, а 6 февраля сидел в первом ряду Mission Control.

О переезде и карьере

Алексей Пахунов родом из Житомира, образование получил в Хмельницком Технологическом университете «Подолье» (теперь Хмельницкий Национальный Университет) по специальности «Компьютерные системы и сети».

В 2004 году переехал в Данию, работать в офисе Microsoft в Копенгаген. До этого также успел пожить и поработать в Румынии. В 2006 году перевелся в команду Windows Kernel и переехал в Редмонд, штат Вашингтон. Затем работал в одной из групп Microsoft Research. А в 2012 году перешел в Google, где работал над Chrome Remote Desktop.

Алексей уехал из Украины в начале 2000-х и сегодня сторонится разговоров о политике, стараясь по возможности избегать околополитических тем. «Главным образом из-за крайне низкого КПД подобных споров. А уж после событий последних лет – так и подавно», — подчеркивает он.

О переходе в SpaceX и Илоне Маске

В середине 2013 года с Алексеем связался рекрутер из SpaceX и сделал ему предложение, от которого украинцу было сложно отказаться: «Я мог совместить два своих любимых хобби: программирование и космос», — вспоминает Пахунов. Сегодня он работает старшим разработчиком ПО в группе Flight Software, SpaceX. 

К тому моменту компания была уже слишком большой и с Илоном Маском Алексей интервью не проходил. Лично с основателем и СЕО компании он пересекался всего пару раз. «Первый — на компанейских посиделках в ресторане, второй — в довольно стрессовой обстановке, когда нужно было быстро принять сложное решение. Посиделки в ресторане мне понравились больше», — признается Алексей. 

«Илон неплохо разбирается в инженерном деле; у него хорошее чутье на работающие решения сложных инженерных проблем. Более того, у него хорошо получается решать инженерные проблемы бизнес-методами. Скажем, вы столкнулись с проблемой, что ваше основное приложение слишком медленно обрабатывает данные. Наивный инженерный подход для решения этой проблемы — потратить X часов на оптимизацию кода. Чуть менее наивный подход — купить в десять раз больше серверов. Это, наверное, не очень эффективно, но может быть оправдано, коль скоро речь идет об основной функции компании. Маск в этой ситуации может сказать, что вообще-то оптимизация обработки данных — совершенно не та проблема, которой нужно заниматься. Нужно просто уменьшить поток входящих данных и не париться. Это не только решит исходную проблему, но и поможет в десятке других мест, где большой объем данных создавал проблемы. Осталось только найти способ уменьшить объем входящих данных…

Мне кажется, что такое «концептуальное» мышление — это одновременно и причина, почему у Маска получается, и причина, почему сроки постоянно ползут вправо.»

О работе над ПО для Falcon

В команде Алексея Falcon Software работает около десяти человек. Они пишут код для ракет и наземной инфраструктуры. В полете и системах, обслуживающих полет, используется С++ и Linux. В менее критичных системах — широко используется Python и другие языки.

Mission control — рабочая среда команды Алексея Пахунова

По словам Алексея, от любого другого кода ПО для Falcon отличается высокими требованиями к надежности и предсказуемости поведения. «Если Word или страница в браузере могут упасть с минимальными последствиями, то на ракете это чревато многомиллионными потерями и возможными человеческими жертвами. Это влияет на архитектуру, способы обработки данных и стиль написания кода», — пояснил Пахунов. Абсолютная производительность кода менее важна, чем стабильное время выполнения. Приветствуется простой код — его легче проверить и протестировать.

Недавно Алексей проводил экскурсию в SpaceX для Святослава Вакарчука. «Космические железки и хороший кофе произвели на Святослава неизгладимое впечатление. Серьезно, у нас бесплатный эспрессо-бар, где бариста варят кофе с утра до вечера. Очередь желающих не заканчивается никогда», — написал Пахунов с воем блоге.

Режим работы инженеров SpaceX действительно жесткий, хотя Пахунова это, похоже не смущает. «Время на отдых и личную жизнь остается, хотя, если вы спросите мою жену, она со мной не согласится. В SpaceX легко работать хоть круглые сутки», — говорит он. В компании стараются организовать рабочий процесс таким образом, чтобы свести внеурочную работу к минимуму, но полностью исключить ее не удается.

Время запуска зависит от орбиты, а не от рабочего расписания. Предстартовая подготовка отсчитывается от времени запуска. Я бы сказал, что я работаю 45-50 часов в неделю.

О найме в SpaceX

Из-за того, что SpaceX попадает под ограничения ITAR (закон о контроле оружия, среди прочего доступе иностранцев к потенциально военным технологиям), работниками компании могут стать только граждане США или постоянные резиденты (счастливые обладатели грин-карты). Также есть вариант получить так называемую лицензию на экспорт.

В SpaceX есть как чисто программистские позиции, так и позиции для программистов-физиков. Первые пишут код, вторые разрабатывают алгоритмы управления и навигации. Если говорить о первых, то компания смотрит прежде всего на способность специалиста писать надежный код на С++ с пониманием того, как работает компьютер на разных уровнях, и умением применять эти знания для решения практических задач.

Один из моих любимых вопросов на интервью звучит так: «Расскажите максимально подробно, что происходит с момента, когда сетевая карта получила пакет с последним куском HTML-страницы, и до того момента, когда браузер перерисует изображение на экране. Этот вопрос позволяет поговорить про взаимодействие с железом, планировщик процессов, сетевые протоколы, менеджмент памяти, обработку событий, изоляцию приложений друг от друга, JIT-компиляцию, графическую подсистему и т.д».

По словам Пахунова, в SpaceX не ищут каких-то специальных «аэрокосмических программистов». Подходящим опытом работы (на С++, поближе к железу) часто обладают выходцы из игровой индустрии, системные разработчики, разработчики встраиваемых/серверных приложений.

Оставить комментарий

Комментарии | 6

Поиск