SpaceX
Redmond - Washington - USA
I spent six months as a Software Engineering Intern at SpaceX, on the Starlink Direct-to-Cell team. Direct-to-Cell lets ordinary mobile phones connect to satellites, without a specialised user terminal/phased array. The team writes software that decides how to use limited network resources across the satellite constellation, while staying inside hardware, radio-spectrum, and operational limits. I wanted this placement after a previous internship in chip design. My own goal was to learn how software is built, reviewed, and maintained on a large production system, and to get closer to satellite communications. I was treated as a full member of the team, not parked on a separate intern project. I owned a modeling and optimization project from first idea through to something other engineers could actually use, understand, and challenge. Most of that work was in Python, with some C++ on nearby production code. The placement sits at the boundary of software, wireless physics, and real operational constraints. That mix is what I came for, and what I want to keep working on.
My role was software engineering on a live team, not a standalone student project. Day to day that meant writing code, checking it with real-world measurements, and simulations, documenting assumptions, and presenting work so other people could argue with it. The role also meant monitoring the state of the network, and acting upon alerts and emergencies in real time. For most of my time at SpaceX, I owned a modeling pipeline end to end. That meant I got to chose the next steps and features, discuss the design of those with the relevant engineers, implementing them, and defending the choices in review, and throughout presentations to the wider team. A large part of the job was bringing together data from different sources, turning wireless physics into software assumptions, and keeping the model cheap enough to actually run. In the meanwhile it had to be something that could be built upon, and haded-off to other engineers. I was lucky to be able to work regularly with hardware engineers, people who already knew telecommunication systems, other software engineers, and plenty of teams across different departments at SpaceX. Independence still mattered, I was expected to investigate first and arrive with a recommendation and potential solutions, not a list of symptoms.
Languages: Python, C++ and Rust. Domain: satellite communications, wireless and mobile networks, and radio-frequency systems. high-performance C++, and GPU accelerations. Engineering: A lot of the work was aggregating data from different sources, cleaning and classifying it, and deciding what was valid to feed the model. Feasibility had to come from physics, not guesswork. Results had to be checkable. The constant trade-off was accuracy versus something that still runs in a useful time. I also learned how production software is actually maintained: write assumptions down, review them, change the model when measurements disagree, and avoid design choices only I understand. Coming from chip design, the new skill was a physical model on real data, not another hardware block.
Ownership: decide the next step, implement it, and defend it, rather than waiting for a fully specified intern task. I was trusted with work other people would use, which meant investigating before asking, and arriving with a solution. Communication: explain why a decision was made, not only that the code produced an output. I presented to the wider team and wrote documentation so RF, hardware, and software engineers could all challenge the same assumptions. If only I could run or explain the model, it was not finished. Teamwork: I implemented a lot myself, but I was constantly in contact with other disciplines. Knowing when to keep going alone, and when a choice would affect someone else's work, mattered more than “communicate more” as a slogan. I also learned to care about maintainability. A shortcut that only I understand wastes other people's time after I leave. Correctness is not enough if nobody else can keep the work alive. Curiosity: SpaceX is a great place in that, you are allowed to, and even encouraged to, look further than your team's work. That meant discovering and working on way more of the hardware side than I had anticipated.