Украинец, который программирует Falcon: Алексей Пахунов, старший инженер полетного ПО в SpaceX
О переезде и карьере
Алексей Пахунов родом из Житомира, образование получил в Хмельницком Технологическом университете «Подолье» (теперь Хмельницкий Национальный Университет) по специальности «Компьютерные системы и сети», пишут
В 2004 году переехал в Данию, работать в офисе Microsoft в Копенгаген. До этого также успел пожить и поработать в Румынии. В 2006 году перевелся в команду Windows Kernel и переехал в Редмонд, штат Вашингтон. Затем работал в одной из групп Microsoft Research. А в 2012 году перешел в Google, где работал над Chrome Remote Desktop.
Алексей уехал из Украины в начале 2000-х и сегодня сторонится разговоров о политике, стараясь по возможности избегать околополитических тем. «Главным образом из-за крайне низкого КПД подобных споров. А уж после событий последних лет – так и подавно», —
О переходе в SpaceX и Илоне Маске
В середине 2013 года с Алексеем связался рекрутер из SpaceX и сделал ему предложение, от которого украинцу было сложно отказаться: «Я мог совместить два своих любимых хобби: программирование и космос», —
К тому моменту компания была уже слишком большой и с Илоном Маском Алексей интервью не проходил. Лично с основателем и СЕО компании он пересекался всего пару раз. «Первый — на компанейских посиделках в ресторане, второй — в довольно стрессовой обстановке, когда нужно было быстро принять сложное решение. Посиделки в ресторане мне понравились больше», —
«Илон неплохо разбирается в инженерном деле; у него хорошее чутье на работающие решения сложных инженерных проблем. Более того, у него хорошо получается решать инженерные проблемы бизнес-методами. Скажем, вы столкнулись с проблемой, что ваше основное приложение слишком медленно обрабатывает данные. Наивный инженерный подход для решения этой проблемы — потратить X часов на оптимизацию кода. Чуть менее наивный подход — купить в десять раз больше серверов. Это, наверное, не очень эффективно, но может быть оправдано, коль скоро речь идет об основной функции компании. Маск в этой ситуации может сказать, что вообще-то оптимизация обработки данных — совершенно не та проблема, которой нужно заниматься. Нужно просто уменьшить поток входящих данных и не париться. Это не только решит исходную проблему, но и поможет в десятке других мест, где большой объем данных создавал проблемы. Осталось только найти способ уменьшить объем входящих данных…
Мне кажется, что такое «концептуальное» мышление — это одновременно и причина, почему у Маска получается, и причина, почему сроки постоянно ползут вправо.»
О работе над ПО для Falcon
В команде Алексея Falcon Software работает около десяти человек. Они пишут код для ракет и наземной инфраструктуры. В полете и системах, обслуживающих полет, используется С++ и Linux. В менее критичных системах — широко используется Python и другие языки.
Mission control — рабочая среда команды Алексея Пахунова
По словам Алексея, от любого другого кода ПО для Falcon отличается высокими требованиями к надежности и предсказуемости поведения. «Если Word или страница в браузере могут упасть с минимальными последствиями, то на ракете это чревато многомиллионными потерями и возможными человеческими жертвами. Это влияет на архитектуру, способы обработки данных и стиль написания кода», —
Недавно Алексей проводил экскурсию в SpaceX для Святослава Вакарчука. «Космические железки и хороший кофе произвели на Святослава неизгладимое впечатление. Серьезно, у нас бесплатный эспрессо-бар, где бариста варят кофе с утра до вечера. Очередь желающих не заканчивается никогда», —
Режим работы инженеров SpaceX действительно жесткий, хотя Пахунова это, похоже не смущает. «Время на отдых и личную жизнь остается, хотя, если вы спросите мою жену, она со мной не согласится. В SpaceX легко работать хоть круглые сутки», — говорит он. В компании стараются организовать рабочий процесс таким образом, чтобы свести внеурочную работу к минимуму, но полностью исключить ее не удается.
Время запуска зависит от орбиты, а не от рабочего расписания. Предстартовая подготовка отсчитывается от времени запуска. Я бы сказал, что я работаю 45-50 часов в неделю.
О найме в SpaceX
Из-за того, что SpaceX попадает под ограничения
В SpaceX есть как чисто программистские позиции, так и позиции для программистов-физиков. Первые пишут код, вторые разрабатывают алгоритмы управления и навигации. Если говорить о первых, то компания смотрит прежде всего на способность специалиста писать надежный код на С++ с пониманием того, как работает компьютер на разных уровнях, и умением применять эти знания для решения практических задач.
Один из моих любимых вопросов на интервью звучит так: «Расскажите максимально подробно, что происходит с момента, когда сетевая карта получила пакет с последним куском HTML-страницы, и до того момента, когда браузер перерисует изображение на экране. Этот вопрос позволяет поговорить про взаимодействие с железом, планировщик процессов, сетевые протоколы, менеджмент памяти, обработку событий, изоляцию приложений друг от друга, JIT-компиляцию, графическую подсистему и т.д».
По словам Пахунова, в SpaceX не ищут каких-то специальных «аэрокосмических программистов». Подходящим опытом работы (на С++, поближе к железу) часто обладают выходцы из игровой индустрии, системные разработчики, разработчики встраиваемых/серверных приложений.