Full Stack Software Engineer
Job description
About the role
The Application Software team at SpaceX is responsible for developing essential systems that facilitate various operations, from the production of the Starship to the management of the Starlink network. We are seeking talented engineers who can take charge of the entire software development lifecycle, creating tools that enhance our flight missions and support our global internet services. You will own the conception, design, and delivery of software solutions that span the entire organization, directly impacting mission success and operational efficiency. This role requires you to architect and implement new applications that streamline processes and solve complex engineering challenges across multidisciplinary teams. You will create rapid prototypes to validate technical assumptions and de-risk innovative concepts before full-scale development. You will oversee the complete product development lifecycle, coordinating requirements and delivery to meet aggressive timelines without compromising quality. You will gather intricate user requirements and translate them into functional, robust, and scalable software solutions. You will actively participate in architectural planning, design discussions, and rigorous code reviews to uphold the highest engineering standards. You will collaborate closely with hardware, mission, and operations teams to integrate diverse systems and technologies seamlessly. You will troubleshoot and debug existing applications, diagnosing root causes to enhance performance, reliability, and resilience under demanding conditions.
Key facts
What you'll do
- Architect and develop software solutions that are reusable across the organization, ensuring scalability and maintainability.
- Design and implement new applications that target critical operational inefficiencies and accelerate SpaceX objectives.
- Create prototypes to evaluate technical feasibility, validate assumptions, and document limitations for stakeholder review.
- Oversee the complete product development lifecycle, managing timelines, milestones, and deliverables to ensure on-time quality releases.
- Gather, analyze, and synthesize user requirements to design software solutions that are intuitive, functional, and aligned with mission needs.
- Engage in architectural planning, contribute to design meetings, and perform thorough code reviews to maintain code quality and best practices.
- Collaborate with cross-functional teams, including engineering, manufacturing, and operations, to integrate systems, hardware interfaces, and technologies.
- Troubleshoot and debug complex issues in existing applications, optimizing for performance, reliability, and resilience in production environments.
- Define and automate build, test, and deployment processes to support continuous integration and continuous delivery objectives.
- Develop and maintain detailed technical documentation, including design specifications, API contracts, and user guides.
- Partner with data engineers and analysts to instrument software for telemetry, monitoring, and actionable insights.
- Evaluate emerging tools, frameworks, and libraries, proposing adoption strategies when they provide measurable advantages.
- Mentor junior engineers, providing guidance on coding standards, design patterns, and problem-solving techniques.
- Coordinate with security and compliance teams to ensure all software solutions adhere to ITAR and regulatory requirements.
- Drive software reliability through testing, validation, and iterative refinement based on user feedback and operational data.
Requirements
- Hold a Bachelor's degree in computer science, engineering, mathematics, or a related scientific discipline; alternatively, possess a minimum of 2 years of relevant professional software development experience.
- Demonstrate at least 1 year of hands-on full stack software development across front-end and back-end technologies.
- Candidates must be U.S. citizens, lawful permanent residents, refugees, or asylees to comply with ITAR regulations.
- Show a strong understanding of software development principles, including object-oriented design, modularity, and separation of concerns.
- Exhibit familiarity with both front-end and back-end technologies, enabling you to work effectively across the entire stack.
- Prove excellent problem-solving skills, with the ability to analyze complex systems and devise efficient solutions under pressure.
- Thrive in a fast-paced environment, managing multiple priorities and adapting quickly to changing requirements and technical constraints.
- Communicate technical concepts clearly to both technical and non-technical stakeholders, facilitating alignment and decision-making.
- Apply disciplined coding practices, including version control, testing, and documentation, to maintain high-quality codebases.
- Collaborate proactively with team members, demonstrating ownership, accountability, and a commitment to collective success.
Nice to have
- Demonstrate proficiency in programming languages such as Python, C#.NET, Go, Scala, or Java for backend services and tools.
- Have experience developing single-page applications (SPAs) using modern front-end frameworks and state management techniques.
- Show background in version control systems, continuous integration, and continuous deployment (CI/CD) pipelines to automate software delivery.
- Possess knowledge of software testing methodologies, deployment strategies, monitoring, and performance optimization techniques.
- Exhibit familiarity with build automation tools like Make, Bazel, Pants, Buck, or Gradle to streamline development workflows.
- Have experience with package management systems such as pip or npm for dependency management and scripting.
- Understand UNIX-like operating systems and configuration management tools like Terraform, Ansible, or Puppet for infrastructure automation.
- Show knowledge of message brokers and data processing frameworks, such as Kafka, RabbitMQ, or ActiveMQ, for real-time data pipelines.
- Have hands-on experience with containerization technologies like Docker and orchestration tools like Kubernetes for scalable deployments.
- Skills in front-end development using frameworks such as React, Angular, or similar technologies for responsive user interfaces.
- Experience with relational databases, including PostgreSQL, SQL Server, or equivalent systems for structured data management.
Practical notes
- This role requires a strict onsite presence at our Hawthorne, CA location.
- Candidates should be prepared for the possibility of working weekends or extended hours in alignment with launch schedules.
- Salary range for this position is Level I ($125,000 - $150,000) or Level II ($145,000 - $175,000).
- The total compensation package includes company stock options, long-term cash incentives, discretionary bonuses, and an Employee Stock Purchase Plan.
- Comprehensive benefits package includes medical, vision, and dental coverage, a 401(k) plan, disability insurance, life insurance, paid parental leave, three weeks of vacation, and more than ten paid holidays annually.