Principal Software Systems Engineer (Contract)

Sierra SpaceLouisville, KY

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 Masters +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.

Nice To Haves

  • Advanced degree in Computer Science, Software Engineering, or a related field.
  • Extensive experience with kernel-level programming.
  • Proficiency in programming languages (Python, C++, Java) and their ecosystems.
  • In-depth knowledge of scripting languages and automation tools.
  • Proven experience with software development methodologies such as Agile or Kanban/Scrum.
  • Exceptional analytical skills and meticulous attention to detail.
  • Superior communication skills and the ability to work effectively in a collaborative team environment.
  • Demonstrated ability to lead large-scale software projects from inception to completion.
  • Strong strategic thinking and decision-making skills.
  • Strong analytical skills, performance profiling, and debugging complex systems.
  • Excellent communication and teamwork skills, with experience using collaborative tools (GitHub, GitLab, Bitbucket).
  • Ability to write and maintain technical documentation.
  • Familiarity with SysML/UML to create software designs.
  • Experience utilizing and setting up static analysis tools.

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
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service