Principal Software Engineer

Sierra SpaceLouisville, CO
1d

About The Position

The Principal Software Engineer role involves designing, developing, and testing software applications for space systems and technologies. This advanced position requires extensive expertise in multiple programming languages, an advanced understanding of software development principles, and the ability to design, architect, and implement complex software systems. The role includes writing clean, maintainable code, collaborating with team members to understand project requirements, and contributing to the development of innovative software solutions. Additionally, this position requires a deep understanding of software engineering processes, advanced algorithmic knowledge, and system scalability. The role also involves providing technical leadership and mentorship to other engineers. In this role, you will design, develop, and test software applications for space systems and technologies while writing clean, maintainable code that adheres to best practices and coding standards. You will architect and implement complex software systems to meet project requirements and collaborate with team members to understand project needs, contributing to the development of effective software solutions. Utilizing version control systems such as Git, you will manage code changes and work collaboratively with team members. You will participate in code reviews to ensure code quality and adherence to development standards, troubleshoot and resolve software-related issues in a timely manner, and document software configurations, processes, and procedures for future reference. Staying current with industry trends and advancements in software development and space technologies will be essential. Additionally, you will independently contribute to the design and development of software applications, conduct unit tests, and participate in code reviews. You will also provide technical leadership and mentorship to other engineers, fostering collaboration and growth within the team.

Requirements

  • Requires bachelor's degree in a related field (or equivalent work experience in lieu of degree or master's +10 yrs experience).
  • Typically, 12+ years of related experience.
  • Extensive expertise in multiple programming languages and software development principles.
  • Ability to design, architect, implement, and test complex software systems.
  • Expert understanding of software engineering processes, advanced algorithmic knowledge, domain-specific design patterns, performance tuning, and system scalability.
  • Mastery in writing scalable, optimized code, ability to design complex software systems, and knowledge of best practices, including secure coding, and system architecture principles.
  • Ability to independently contribute to the design and development of software applications, conduct unit tests, and participate in code reviews.
  • Experience with different software development methodologies such as Agile and Scrum/Kanban.
  • The ability to obtain and maintain a U.S. Security Clearance is required

Nice To Haves

  • Expert-level proficiency in C++ and Object-Oriented Programming, with a strong ability to design and implement complex software architectures.
  • Extensive experience designing and implementing client-server applications using socket I/O with TCP/UDP protocols.
  • Proven expertise in developing loosely coupled, scalable applications leveraging PUB/SUB messaging frameworks.
  • In-depth knowledge of open standards such as CCSDS, C2MS, Open Mission Systems (OMS), and Universal C2 Interface (UCI), with experience integrating these standards into software solutions.
  • Comprehensive experience in spacecraft flight software development, including real-time systems and fault-tolerant architectures.
  • Significant experience developing mission management and/or payload control software for complex systems.
  • Demonstrated ability to lead cross-functional software development teams, effectively managing timelines, deliverables, and technical challenges.
  • Advanced experience utilizing software tools for requirements tracking, code reviews, static analysis, artifact repositories, and automated build pipelines.
  • Deep understanding of software development methodologies, including Agile/Scrum, and the ability to mentor teams in their adoption and execution.
  • Strong knowledge and practical application of Software Design Patterns for creating maintainable, efficient, and scalable codebases.
  • Extensive experience using SysML/UML to create comprehensive and precise software designs.
  • Proficiency in testing and debugging within both Software-in-the-Loop (SITL) and Hardware-in-the-Loop (HITL) environments, including testing on target platforms.
  • Advanced expertise in Source Code Configuration Management platforms, such as GIT and SVN, with a focus on maintaining robust version control practices.
  • Extensive experience developing and deploying software on Linux-based systems, including kernel-level programming and optimization.
  • Advanced knowledge of network configurations, including netconf, and experience implementing secure and efficient network communication protocols.
  • Proven expertise in embedded programming, including new board bring-up and low-level hardware/software integration.
  • Extensive experience optimizing computer system performance, with a focus on timing, resource utilization, and power efficiency.

Responsibilities

  • Design, develop, and test software applications for space systems and technologies
  • Write clean, maintainable code that adheres to best practices and coding standards
  • Architect and implement complex software systems to meet project requirements
  • Collaborate with team members to understand project needs, contributing to the development of effective software solutions
  • Utilize version control systems such as Git to manage code changes and work collaboratively with team members
  • Participate in code reviews to ensure code quality and adherence to development standards
  • Troubleshoot and resolve software-related issues in a timely manner
  • Document software configurations, processes, and procedures for future reference
  • Stay current with industry trends and advancements in software development and space technologies
  • Independently contribute to the design and development of software applications
  • Conduct unit tests and participate in code reviews
  • Provide technical leadership and mentorship to other engineers, fostering collaboration and growth within the team

Benefits

  • medical
  • dental
  • vision plans
  • 401(k) with 150% match up to 6%
  • life insurance
  • 3 weeks paid time off
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service