История украинца, который работает старшим инженером в SpaceX

  • 22 feb. 2018, 11:08
  • 4 413
  • 6

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

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

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

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

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

Об образовании

Вчерашним студентам именитый вуз помогает пройти начальный фильтр и попасть на интервью. Пройти же интервью помогают хорошие мозги, правильно подвешенный язык, и немного практического опыта, считает Алексей.

«Хорошему студенту хороший вуз помогает отточить мозги и расшевелить язык, а шило в одном месте (иначе какой же он хороший студент) — заставляет не сидеть на попе ровно, а набираться практического опыта» — говорит он.

В случае “работника с опытом работы в индустрии”, образование менее релевантно. Важен опыт работы, который показывает, чего данный кандидат достиг. Алексей ни одному из работодателей свой диплом не показывал. Диплом был нужен только чтобы податься на рабочую визу и вид на жительство.

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

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

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

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

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

Недавно Алексей проводил экскурсию в SpaceX для Святослава Вакарчука. Фото blog.not-a-kernel-guy.com

О работе над программным обеспечнием для Falcon

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

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

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

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

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

О найме в SpaceX

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

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

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

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