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 и другие языки.
По словам Алексея, от любого другого кода ПО для Falcon отличается высокими требованиями к надежности и предсказуемости поведения. “Если Word или страница в браузере могут упасть с минимальными последствиями, то на ракете это чревато многомиллионными потерями и возможными человеческими жертвами. Это влияет на архитектуру, способы обработки данных и стиль написания кода”, – пояснил Пахунов. Абсолютная производительность кода менее важна, чем стабильное время выполнения. Приветствуется простой код – его легче проверить и протестировать.
Режим работы инженеров SpaceX действительно жесткий, хотя Пахунова это, похоже не смущает. “Время на отдых и личную жизнь остается, хотя, если вы спросите мою жену, она со мной не согласится. В SpaceX легко работать хоть круглые сутки”, – говорит он. В компании стараются организовать рабочий процесс таким образом, чтобы свести внеурочную работу к минимуму, но полностью исключить ее не удается.
Время запуска зависит от орбиты, а не от рабочего расписания. Предстартовая подготовка отсчитывается от времени запуска. Я бы сказал, что я работаю 45-50 часов в неделю.
О найме в SpaceX
Из-за того, что SpaceX попадает под ограничения ITAR (закон о контроле оружия, среди прочего доступе иностранцев к потенциально военным технологиям), работниками компании могут стать только граждане США или постоянные резиденты (счастливые обладатели грин-карты). Также есть вариант получить так называемую лицензию на экспорт.
В SpaceX есть как чисто программистские позиции, так и позиции для программистов-физиков. Первые пишут код, вторые разрабатывают алгоритмы управления и навигации. Если говорить о первых, то компания смотрит прежде всего на способность специалиста писать надежный код на С++ с пониманием того, как работает компьютер на разных уровнях, и умением применять эти знания для решения практических задач.
Один из моих любимых вопросов на интервью звучит так: «Расскажите максимально подробно, что происходит с момента, когда сетевая карта получила пакет с последним куском HTML-страницы, и до того момента, когда браузер перерисует изображение на экране. Этот вопрос позволяет поговорить про взаимодействие с железом, планировщик процессов, сетевые протоколы, менеджмент памяти, обработку событий, изоляцию приложений друг от друга, JIT-компиляцию, графическую подсистему и т.д».
По словам Пахунова, в SpaceX не ищут каких-то специальных “аэрокосмических программистов”. Подходящим опытом работы (на С++, поближе к железу) часто обладают выходцы из игровой индустрии, системные разработчики, разработчики встраиваемых/серверных приложений.