Coding for Satellite Internet
By: Rachel Simone Domagalski, Software Engineer at Astranis
Hi, I’m Rachel. I took a fairly non-traditional pathway towards becoming a software engineer. After high school, I went to my local community college without much of a clear idea of what I wanted to do with my life. I eventually decided on physics after reading some popular science books and went on to doing a double major in physics and astronomy at a university. After spending about a year and a half working in an astronomy lab after graduating, I decided to give grad school a shot, initially in pursuit of a PhD in astronomy. Two years into grad school and I realized that it wasn’t my thing, so I left with a Master’s degree and got a job working at a robotics startup. About a year ago, I joined the company Astranis as a software engineer.
What do you work on?
Astranis is a company that works on small satellites that deliver internet access to places that currently don’t have a lot of options for getting online. We are an aerospace company and we’re currently working on making a satellite that will target Alaska with its internet coverage. My duties as a software engineer have touched on a decent amount of things. Right now, I’m working on the software stack that we use on the ground to send and receive packets from the satellite, but in the past year, I’ve also worked on software to help electrical engineers test boards and components and have written a small amount of flight software.
How do you use coding in your projects?
At Astranis, my recent projects have primarily been writing software that controls hardware, such as some of the spacecraft components as well as the radios we use to talk to the satellite from the ground. I also have helped electrical engineers develop scripts to control lab equipment to automate some of their testing procedures that would otherwise be fairly tedious. There’s definitely been a bit of a learning curve, but it’s been a blast so far. Outside of work, I write software to control some appliances in my apartment, such as light bulbs, with some custom routines. When the California fires hit really hard a few months ago, I picked up an air quality monitor and wrote some code to have a few of my light bulbs change colors based on the air quality, which has been really useful.
Any tips for students?
One thing that I’d recommend to people interested in the technical aspects of the type of work that software engineers at my company do is to learn how to program microcontrollers. There are several low-cost options, such as the Arduino, STM32 Nucleo, and ESP32 boards. There are also a lot of fairly cheap hardware components available that can be controlled with microcontrollers as well, such as thermometers, motors, accelerometers, and lots of other components. Getting a feel for the type of software used to control hardware is a great idea for anyone interested in working in aerospace as a software engineer. Even if you don’t necessarily have a project in mind, grabbing some components and playing around with them can be really fun.
Tools and programming languages you use:
My main programming languages are:
- Python
- C++
- Rust
Some other software tools that I use on a regular basis are:
- Git
- Linux
- Vim
- InfluxDB
- Grafana
My home projects typically run on Raspberry Pi and Arduino boards.
Outside of work, I can be found playing the synthesizer badly, as well as jogging or roller skating around my neighborhood.
Connect with Rachel on:
GitHub: https://github.com/domagalski
Twitter: https://twitter.com/MersenneTwisty
Interested in utilizing this resource in your elementary classroom? Check out our elementary version of this blog here. Comprehension is designed for upper elementary independent reading (Lexile level no greater than 1000), or guided reading for younger students.