SpaceX was founded under the belief that a future where humanity is out exploring the stars is fundamentally more exciting than one where we are not. Today SpaceX is actively developing the technologies to make this possible, with the ultimate goal of enabling human life on Mars.SOFTWARE ENGINEER (STARSHIELD)Starshield leverages SpaceX's Starlink technology and launch capability to support national security efforts. While Starlink is designed for consumer and commercial use, Starshield is designed for government use, with an initial focus on earth observation, communications, and hosted payloads.The Starshield software team is building highly reliable in-space mesh networks, designing secure systems to guarantee access to space, designing next-gen communication and sensing software, and more. Aerospace experience is not required to be successful here - we want our engineers to bring fresh ideas from all areas. We look for engineers who love solving problems and seek to make an impact on an inspiring mission. As we expand this team, we're looking for versatile, motivated, and collaborative engineers.Our team is involved in designing the vehicle systems at every phase of development. We build tools that enable us to work more efficiently, and that help us build software systems that are secure, reliable, and autonomous. Our software engineers are responsible for the life cycle of the software they create, including development, testing, and operational support.RESPONSIBILITIES:Create highly reliable software systems that control hundreds of satellites in low earth orbitLeverage software design to improve satellite constellation performance, security, and availability to meet the needs of a wide range of usersSee your software through from start to finish: from figuring out the core needs to prototyping, developing, and testing; to on-orbit rollout and beyondWork with interdisciplinary teams to brainstorm, design, and build the next generation of satellite capabilities, from cutting-edge sensors and inter-satellite lasers to space-based cloud computeThere are several roles within the Starshield software team with different focus areas. Applicants will interview for specific focus areas based on hiring needs and qualifications. Specific role responsibilities may include:Write high quality Linux-based C++ software for common processors and micro controllers (e.g. ARM, PowerPC, x86, etc.)Implement networking technologies to direct data across a variety of satellites, ground operations centers, and usersBuild automated ground-based software systems that integrate smart data processing with command and control of the satellitesDevelop models and simulations for flight-like vehicle software testing, network performance analysis, or research & development projectsDevelop tools that allow for test execution across multiple environments: virtualized hardware, real hardware-in-the-loop, and even vehicle-in-the-loop testingInvent new systems that enable more frequent and reliable software deployment, test execution, and data analysis as part of a continuous integration and release systemBASIC QUALIFICATIONS:Bachelor's degree in computer science, engineering, math, or STEM discipline; OR 2+years of professional experience insoftware development in lieu of a degreeDevelopment experience in C, C++, or Python or full stack software development experiencePREFERRED SKILLS AND EXPERIENCE:Developed and deployed software that has been used real-world applications and projectsSolid fundamental knowledge of computer architecture and networksStrong skills in debugging, performance optimization and unit testingAbility to work effectively and creatively in a dynamic environment with changing needs and requirementsAbility to work independently and in a team, take initiative, and communicate