Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing
Podcast Image

Rust in Production

Gama Space with Sebastian Scholz

22 Jan 2026

Transcription

Chapter 1: What is the mission of Gamma Space and how is Rust involved?

1.887 - 25.785 Matthias Endler

It's Rust in Production, a podcast about companies who use Rust to shape the future of infrastructure. My name is Matthias Entler from Corot, and today we talk to Sebastian Scholz from GammaSpace about controlling solar sails and satellites with Rust. Sebastian, thanks very much for taking the time for the interview today. Can you say a few words about yourself and about Gamma?

0

26.491 - 30.598 Sebastian Scholz

Yes, thank you very much for having me, Matthias. I'm very excited to be here.

0

Chapter 2: How do solar sails work for spacecraft propulsion?

30.718 - 61.06 Sebastian Scholz

My name is Sebastian Scholz, and I'm an electronics and embedded system engineer at GammaSpace. We are based in Paris, and I've been with GammaSpace since January 2023. Our mission, our GammaSpaces mission is to develop and provide a propulsion technology called solar sails in space. And to do that, we are using rust in various places. And that's what I'm here to talk about.

0

61.08 - 68.209 Matthias Endler

Now, not everyone might be familiar what a solar sail is. Can you describe the principle behind it?

0

68.662 - 93.64 Sebastian Scholz

Yes. So the concept is actually rather simple. You know, when you have a sail on a boat, you have the wind blowing into it. In space, you don't have that, but you have the sun. And the photons of the sun provide some amount of pressure on a sail. So if you have reflective space, the reflections of the photon give you an impulse and so provide momentum.

0

93.62 - 102.043 Sebastian Scholz

to yourself so basically it's a way of moving in space but without fuel and just relying on the sun hmm

0

Chapter 3: What are the challenges of using Rust in aerospace applications?

104.082 - 129.6 Sebastian Scholz

Basically, free propulsion. Basically, free propulsion. That's exactly it. The main advantage of it, of combustion propulsion, is that you don't need to bring your fuel with you. So as you might know, it's still kind of hard to get mass into space. So by saving all of this potential fuel mass, it's going to be easier and cheaper to go into space. And the trade-off is speed, I'm assuming, right?

0

129.698 - 151.565 Sebastian Scholz

Yes, of course, there are some downsides. Compared to a normal combustion engine, the civic impulse that you get is rather low. So that means the acceleration is extremely low, actually, in the area of a few newtons versus kilonewtons that you get from normal propulsion. So that means you have to plan your trajectories accordingly.

0

152.266 - 161.543 Sebastian Scholz

But I mean, the benefit is that this propulsion is infinite compared to the fuel, because at some point fuel runs out, but the sun, it's going to take a very long time for it to run out.

0

162.385 - 164.228 Matthias Endler

Unless you're too far away from the sun.

0

164.208 - 186.233 Sebastian Scholz

Yeah, but even if you're too far away from the sun, you still get some amount of propulsion. I mean, it's not like you're on an empty tank. You still have some amount of movability even if the sun is very low. But if you're on the outside of the solar system, you're going to have to move a bit slower. Yes, that's absolutely true.

186.213 - 193.983 Matthias Endler

It's not a physics podcast, but at the same time, I'm always curious about space. It's a thing that's fascinated me since I was a child.

Chapter 4: Why is reliability critical in space software development?

194.403 - 206.078 Matthias Endler

And a lot of people, they requested an episode with you and with the project that you do, which we're here to talk about, because you also happen to use Rust.

0

206.868 - 231.365 Sebastian Scholz

Yes, quite extensively, as a matter of fact. So for the solar sails, we have launched in January 2023, so right around the time when I joined the company, we've launched a satellite, a demonstration mission for this technology, the solar sails. And the onboard data handling system, our part of the satellite, is more or less completely written in Rust.

0

231.886 - 242.983 Sebastian Scholz

So we have a few sea libraries underneath the hood, but the main code and all of the supporting test equipment was written using Rust.

0

242.963 - 253.384 Matthias Endler

Now, isn't it extremely risky to use Rust for such a mission? You don't really have that many tries anyway. It's not like redeploying a backend or so.

0

254.005 - 284.749 Sebastian Scholz

Yes, that's one of the great dangers if you develop something for space. You get one shot. with your satellites. And if you mess it up, it's not like you could just go up and try to reboot it. You really have only one shot. But the mindset that we have at Gamma is the mindset of the new space companies. So we try to move fast and fail fast. So we try a bunch of new things. And if we do fail...

284.729 - 295.721 Sebastian Scholz

It's unfortunate, of course, but it's not a big deal. That's kind of how we do learn. And so what we wanted to do with this mission, it's a demonstration mission.

Chapter 5: How does Gamma Space ensure software safety in space?

295.741 - 313.521 Sebastian Scholz

So we wanted to demonstrate our technology, but we also wanted to try out new things. And so using Rust as the main driver for our onboard data handling system was one of these decisions that we wanted to try out to see if it's going to be usable for the future as well.

0

313.501 - 324.413 Matthias Endler

And before we talk about the onboard data handling system, what do you define as new space and what are maybe other companies in that realm?

0

325.555 - 348.833 Sebastian Scholz

Yeah, so the main one that is probably known to everyone is SpaceX in that regard. And you can definitely see in the way they work that they like to fail fast as well. I mean, just look at the Starship launches. The development of this kind of rocket is extremely difficult, but they're doing it very fast and they're failing very fast as well.

0

348.853 - 378.084 Sebastian Scholz

I mean, many of these launches end with spectacular explosions. And so the mentality is, yeah, okay, We're going to have to spend a lot of resources, but we're going to learn a lot of it as well during the failure. So, yeah, that's just one way of moving forward versus in the past, the kind of old space, which is the big entities like NASA, they want to do it once and want to do it correctly.

0

378.585 - 383.772 Sebastian Scholz

And I mean, this mindset is also very important if you're doing like deep space missions as well.

383.752 - 410.856 Sebastian Scholz

where it takes a really long time to get to places for example i mean as well if you want to go to mars you you kind of get one shot and if you don't do it correctly you're gonna have to wait a couple 10 or more years to get back okay it's a test mission and yet it is foundational software that you're writing because you might as well just use some of the more established or like

410.836 - 420.409 Matthias Endler

some of the more common languages like C, C++, or maybe even Ada for the test mission for Gamma Alpha. But you chose Rust. Why?

421.09 - 449.083 Sebastian Scholz

So this mainly boils down to our software engineer at the time. So this was before I started working at the company. I didn't mention, but the Gamma space itself is only about five years old now. So it was founded in the 2020s. And we kind of move relatively fast and the team only grows relatively so. So right now we are, I think, 21 people in the company.

449.103 - 466.984 Sebastian Scholz

And at that point, when we launched Gamma Alpha, it was more like 12. And most of our team is actually in mechanics, because as you can imagine, I mean, the The folding and creation of the sail is its own topic. It's one of the main things that we do.

Chapter 6: What does the development workflow look like at Gamma Space?

498.212 - 517.603 Sebastian Scholz

And so when he looked into options and other kind of languages to use, He decided that Rust would be a perfect fit for our case. He had a little bit of prior experiences in it as well. And so that's why we didn't choose Ada, for example. And how did he evaluate Rust?

0

518.404 - 524.374 Matthias Endler

I know that you were not there, but maybe you talked to them about it. Why did they choose it?

0

524.523 - 554.859 Sebastian Scholz

Yes. So basically, he did a trade-off of Rust versus other languages. And I mean, it came out clearly on top. The memory safety, just eradicating a whole bunch of errors that you can have with C and C++ is really critical for space applications. It's these kind of avoidable errors that can be caught before you deploy your code. That can just be denied by the compiler.

0

555.7 - 575.657 Sebastian Scholz

And in general, the help that the compiler gives you compared to other languages in writing safe and good code, this I think was the main driver. And of course, the ability to still go into the embedded systems level, still be real-time and be reliable.

0

577.645 - 600.312 Matthias Endler

How can I imagine day-to-day at Gamma? Do you use any special software that us normal, let's say, earthly ROS developers don't use? Or would you say, no, it's mostly the same components, it's mostly the same code structure, it's the same CICD platform like any other project?

601.152 - 629.41 Sebastian Scholz

Yeah, actually, it's very, very similar. So in a bunch of companies, you would find setups with GitLab, for example, and so do we have it. We use a lot of crates that are just out there for many people to use, like ZeroCopy, for example, and other things, ProbeIS for our debugging environment. It's a little bit more specific because we work with hardware.

629.53 - 652.423 Sebastian Scholz

So in many software companies, you have your code, you have unit tests, you have integration tests that you run on your CI, and that's that. We have to interface with actual real hardware. And so maybe one of the key differences is that we have a flat set of for the Gamma Alpha product, for the Gamma Alpha satellite.

652.945 - 677.692 Sebastian Scholz

FlatSat, I should say, is basically the electronics of the satellite unwrapped, laid out on a flat on a table. Hence the name FlatSat. And it's a one-to-one, pretty much a one-to-one copy of the actual hardware of the satellite. And we integrated it in our CI so that our tests, we have mainly integration tests, and they run on the actual hardware.

Chapter 7: How does Gamma Space handle hardware failures in space systems?

678.052 - 686.323 Sebastian Scholz

And then we have probes attached to look at the actual output of the system and make sure that everything's all right.

0

689.189 - 710.016 Matthias Endler

If you want to learn Rust on a deeper level and really get your hands dirty with challenging problems while having fun and seeing your progress at the same time, I recommend checking out CodeCrafters. I personally use it often to sharpen my skills and would recommend it to anyone who wants to become a better software engineer with Rust or any other language for that matter.

0

710.517 - 732.961 Matthias Endler

The challenges range from building your own shell to implementing Redis and SQLite all the way to Kafka and DNS. This is perfect hands-on experience for backend engineers and systems programmers. And if you go to corrode.dev slash CodeCrafters, you can try CodeCrafters for free today and get 40% off when you upgrade to a paid plan.

0

733.261 - 764.222 Matthias Endler

Head over to corrode.dev slash CodeCrafters or click on the link in the show notes to get started today. It's kind of cool that you use ProbeRS, especially because... All of the embedded, or I call it embedded, but like all of the low-level projects that I know of use it to some extent. Was it a natural choice for you? Did you evaluate anything else? Is there even anything else in that space?

0

764.423 - 766.969 Matthias Endler

Or is Propor as the de facto standard now?

767.86 - 796.872 Sebastian Scholz

Yeah, it took us a while to get all of these systems up and running. And in the process of doing so, we did evaluate multiple things, but there was not a lot of choice for this sort of thing. We could have also just used regular C debuggers, as in just start a different process with the debugger and then interface with that. That was one of the other options that we looked at.

796.852 - 825.677 Sebastian Scholz

I mean, that would basically have been the normal C approach, you know, like just user, like a GDB, for example, as a debugger. But the benefit of PropOS was that, well, of course it was written in Rust and it allowed for a lot more fine-grained control of what we wanted to do with our integration tests. For example, we have a system to compile test Rust binaries

825.657 - 843.978 Sebastian Scholz

and then upload them via Propa S onto the actual hardware and then look at the output and look for certain signals and to make sure that the tests that this binary represents passes. So that was very easy to do in Rust and using Propa S. And how does that system look like?

844.018 - 852.388 Matthias Endler

How does it work? What's the end-to-end development flow? So I'm guessing you develop code in your IDE. I'm not sure which IDE you use.

Chapter 8: What future projects are on the horizon for Gamma Space?

907.096 - 930.285 Sebastian Scholz

I think it's called Hyper. And basically it manages access to it. At that time, so it has a web interface and at that time, We wanted to kind of get fancy, and I have a little bit of a background in Flutter development as well. So the web interface is based on Flutter, but the actual logic and the serving of the files is in Rust.

0

931.027 - 955.139 Matthias Endler

Oh, wow. That's a really cool project in and of itself because I really wondered how would you test your hardware components? You kind of want to abstract that away. You don't want to unplug and plug it back in again. You kind of want to have a system for that. And I'm assuming that there's not much on the market, especially for flat sets like this.

0

955.619 - 967.202 Matthias Endler

It's probably still an embedded setup, just like any other embedded setups, but... The moment you go into the details here, you will find that you probably need a custom solution, right?

0

967.843 - 993.08 Sebastian Scholz

Exactly. So this is one of the unfortunate truth. If you do develop your own system, there's no one solution fits all kind of a thing. So we did try to find generic solutions for embedded testing. And I don't know how it looks right now, but a couple of years ago, two and a half years ago, There wasn't really a lot that helped you write actual tests for the embedded target and run them.

0

993.861 - 1006.678 Sebastian Scholz

So yes, this solution of the integration tests and the test suite itself is also a custom solution that we developed in Rust as well. So the whole integration test suite is also written in Rust and developed in-house.

1006.658 - 1013.005 Matthias Endler

But the integration tests are still in a tests folder, just like you would expect from any normal ROS project, right?

1013.025 - 1033.847 Sebastian Scholz

Yes, pretty much. So basically, it's a binary that has all of the tests in it. And then we just upload this binary to the hardware and then let it run. And we look at the output via a communication protocol. I think for that, we use just UART, a very common low-level communication protocol.

1034.941 - 1058.367 Matthias Endler

Now, earlier you mentioned correctness in a different context, but I think it fits in here as well, because couldn't you test a lot of the logic with unit tests? Or is it so that you kind of want to always test the inputs and outputs as well, because it's kind of a monolithic service?

1059.916 - 1088.218 Sebastian Scholz

Yeah, we have some unit tests. And for smaller functionalities, we do use those to test. The theme that we have in our code is we have one big project, but it's built up in smaller crates. So the big onboard data handling system software uses a lot of smaller crates that we also develop. And the smaller crates, they have unit tests for their functionality.

Comments

There are no comments yet.

Please log in to write the first comment.