A Ukrainian who programs Falcon: Oleksii Pakhunov, senior flight software engineer at SpaceX

On May 30, SpaceX successfully launched its Crew Dragon ship. It has already docked to the ISS, and the mission is underway as usual. In order for everything to work out, Ukrainian Oleksii Pakhunov also takes part. The editorial staff wrote a text about him back in 2018, and after the launch of Crew Dragon, which was brought into space by the Falcon 9 rocket, it remembers him again.

The whole world is buzzing about the successful launch of the Falcon Heavy, super heavy-lift launch vehicle, which the company of Elon Musk carried out on February 6. That was, without exaggeration, a historical event. All the people involved in it became heroes. One of them is Ukrainian Oleksii Pakhunov, who played an important role in the space adventures of SpaceX. He was responsible for the successful landing of the Falcon 9 in 2015, and on February 6, he sat in the front row at Mission Control.

Relocation and career

Oleksii Pakhunov was born in Zhytomyr. He graduated from Khmelnytskyi Technological University of Podillya (now Khmelnytskyi National University) with a degree in Computer Systems and Networks.

In 2004, he moved to Denmark to work at Microsoft in Copenhagen. Before that, he had also lived and worked in Romania. In 2006, he joined the Windows Kernel team and moved to Redmond, Washington. Then he worked for one of the Microsoft Research teams. And in 2012, he joined Google, where he worked on Chrome Remote Desktop.

Oleksii left Ukraine in the early 2000s, and today he avoids talking about politics, trying to avoid near-political topics as much as possible.”Mainly because of the extremely low efficiency of such disputes, and especially considering the events of recent years,” he emphasizes.

Transfer to SpaceX and Elon Musk

In mid-2013, a SpaceX recruiter contacted Oleksii and made him an offer that the Ukrainian found difficult to refuse, “I could combine my two favorite hobbies: programming and space,” recalls Pakhunov. Today he works as a senior software developer in the Flight Software group, SpaceX. 

By that time, the company was already too large and Oleksii did not have an interview with Elon Musk. He met with the founder and CEO of the company personally only a few times. “First time it was during the company’s gathering in a restaurant, and the second time – in a rather stressful setting when you had to quickly make a difficult decision. I liked the gathering in the restaurant more,” Oleksii admits.

“Elon is well versed in engineering; he has a keen scent for working solutions to complex engineering problems. Moreover, he is good at solving engineering problems through business methods. Say you run into a problem with your main application processing data too slowly. A naive engineering approach to solving this problem is to spend X hours on code optimization. A slightly less naive approach is to buy ten times more servers. This, probably, is not very efficient, but it can be justified since we are talking about the main function of the company. Musk in this situation may say that, in general, data processing optimization is absolutely not the problem that needs to be addressed. You just need to reduce the flow of incoming data and move on. This will not only solve the original problem but also help in a dozen other areas where a large amount of data was creating issues. It only remains to find a way to reduce the amount of incoming data…

It seems to me that this “conceptual” thinking is both the reason why Musk succeeds and the reason why the deadlines are constantly crawling to the right.”

Working on software for Falcon

Oleksii Falcon Software’s team consists of about ten people. They write code for rockets and ground infrastructure. C++ and Linux are used in flight and flight support systems. Python and other programming languages are widely used in less critical systems.

Mission control, working environment of Oleksii Pakhunov’s team

According to Oleksii, software for Falcon differs from any other code by high requirements for reliability and predictability of behavior. “If Word or browser page can crash with minimal consequences, on the rocket, it can cause many millions of casualties. It affects the design, the way data is processed, and the way code is written,” Pakhunov explained. Absolute code efficiency is less important than stable running time. Simple code is welcomed – it is easier to check and test it.

The schedule of SpaceX engineers is hard, though it seems Pakhunov likes it. “There is time for the rest and personal life, but if you ask my wife, she won’t agree with me. It’s easy to work around the clock at SpaceX,” he says. The company tries to organize the workflow in such a way as to reduce overtime work to a minimum, but can’t eliminate it.

The launch time depends on the orbit, not on the work schedule. Prelaunch preparation is counted from launch time. I’d say I work 45-50 hours a week.

Employment at SpaceX

Due to the fact that SpaceX is subject to ITAR regulations (the International Traffic in Arms Regulations, inter alia, the access of foreigners to potentially military technologies), only U.S. citizens or permanent residents (lucky green card holders) can become employees of the company. There is also an option to get the so-called export license.

SpaceX has both purely programming positions and positions for physics programmers. The former write code, the latter develop control and navigation algorithms. If we talk about the first, then the company looks primarily at the ability of a specialist to write a reliable C++ code with an understanding of how a computer works at different levels, and the ability to apply this knowledge to solve practical tasks.

One of my favorite interview questions sounds like this: “Tell us in as much detail as possible what happens from the moment the network card receives the packet with the last piece of the HTML page until the browser redraws the image on the screen. This question allows you to talk about interaction with hardware, the process scheduler, network protocols, memory management, event processing, isolating applications from each other, JIT compilation, the graphics subsystem, etc.”

According to Pakhunov, SpaceX is not looking for any special “aerospace programmers.” Game experience, system developers, developers of embedded / server applications often have suitable work experience (in C++, closer to hardware).