Ask HN: Has anyone worked as an embedded developer at a rocket/space company?
I find the whole space really interesting and inspiring, and am interesting working on satellites or rockets, or something in this new blossoming industry. Seems like a bunch of fantastic engineering challenges. However, outside of some home arduino and esp32 projects, I've never done any embedded development.
Is anyone working as an embedded engineer, in or out of the space industry? How can I learn more and see if it might be a fit for me? Do you like what you do?
6 comments
[ 3.2 ms ] story [ 24.9 ms ] threadI worked on space ops for a space agency and was in charge of satellite onboard computers, so although I didn't write the code I was on it constantly to understand it, evaluate it, test it, or even live patch it (as in patch the assembly in RAM and persistent memory to remove a bug).
It is really cool, because what you write is working with a myriad of complex systems that, if you're curious as an engineer, are fascinating: thermal, radio, attitude control, propulsion, all kinds of payloads (cameras, lasers, radiometers, radars...). I loved it.
The downside is that you'll barely encounter "cutting edge" hardware to develop in, and the tooling in the industry is also atrocious. This is probably changing outside the big agencies (and even in JPL they used a consumer CPU for the Mars copter).
Projects take a long time (years) and everything is controlled and documented ad nauseum. This is normal, as you don't get to just load a new version of the software if you screw up the critical software update path (comms + command handling + memory handling + alarm handling + real time constraints + ...). Also, many other parts of the software do have an effect on the hardware (e.g. you may get into an attitude that burns your payload).
If you want to learn more, start with simple embedded projects with sensors and actuators without an OS and then move to something real-time with RTEMS or similar RTOS. Maybe today you can even build your own navigation computer for a drone for cheap. You'll definitely have to use an RTOS for that and you can't go call some cloud service to control your drone, so great for learning.
C and C++ are the languages of choice. Ada is used in some projects too.
Train yourself to think about what's the worst case scenario and how to handle it, and how to be nimble with your data handling.
You do need domain knowledge as well. The book that everyone I know has read is "Spacecraft Systems Engineering"[1]. I read it cover to cover when I started in the industry.
Happy to expand if you have any questions.
[1] https://www.wiley.com/en-us/Spacecraft+Systems+Engineering%2...
The recommendation around building my own drone controller is a good one, several years together I specced out and built a drone controlled by ardupilot so I’ve at least played with the off-the-shelf version.
Do you think rust is going to gain steam in the industry over the next decade?
Was this your career path right out of the gates or did you come in to it after time doing other things? i work in the finance/trading industry right now but not too close to any hft hardware
I haven't seen many career hoppers, but I'd say it's doable. I would try to enter through the ground software path: mission control systems or simulators. Those employ more "pure" software people.
From there it's a matter of being in touch with the embedded guys and show that you can do it. Simulators are great for that; they're basically a piece of software that emulates the onboard processor and simulates all the other sensors and actuators so operators can train and validate the on-board software. You have to be in touch with the onboard software developers, because there are always lots of kinks to iron out (e.g. I once had to fix a bug that a compiler optimization introduced, making magnetorquers always "max out" on actuation).
If you're in trading, I assume you're proficient in C++? If so, that's a great asset already.
About Rust: I love Rust and I use it in my embedded work now. I think it would be very beneficial for space applications. That said, there is a long way until it's accepted in the space industry. Ferrous Systems[1] is working on it, but it will take a long time; it's a slow industry. Perhaps it will start being accepted by the end of the decade.
Another idea for a side project: amateur rocketry!
[1] https://ferrous-systems.com/ferrocene/