Software Architect
Kepler Communications
Responsibilities:
- System Architecture & Design:
- Develop high-level software architecture for embedded and real-time systems, ensuring scalability, maintainability, reliability, correctness, and performance.
- Define software interfaces, communication protocols, and integration strategies for complex, multi-system environments.
- Ensure software solutions align with mission requirements, safety standards, and industry best practices.
- Technical Leadership & Collaboration:
- Provide technical guidance to software development teams, enforcing best practices in architecture and design.
- Collaborate with systems engineers, firmware developers, and hardware teams to ensure seamless integration.
- Act as a subject matter expert, contributing to design reviews and architectural decisions.
- Process Adherence & Quality Assurance Oversight:
- Ensure adherence to established code review processes, static analysis, and verification protocols.
- Collaborate with quality assurance teams to uphold software safety and security standards, utilizing tools such as SonarQube, Cppcheck, Pylint, or CodeSonar.
- Support the integration of CI/CD pipelines to enhance development efficiency and maintain architectural integrity.
- Documentation & Process Improvement:
- Maintain comprehensive architecture documentation, design rationale, and implementation guidelines.
- Establish and optimize software development processes, ensuring efficiency and quality control.
- Stay informed on emerging trends, industry standards, and best practices in space software architecture.
Requirements:
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related field.
- 10+ years of experience in software design and development, with a focus on embedded systems and real-time computing.
- Expertise in C, C++, and Python for embedded and real-time applications.
- Strong background in embedded Linux, RTOS, and bare-metal system design.
- Experience in software architecture design, including multi-threaded, multi-core processing, and inter-microprocessor communications.
- Familiarity with static code analysis tools such as SonarQube, Cppcheck, Pylint, or CodeSonar.
- Experience withdesign-for-test and designing for upgradeability.
- Proficiency in integrating and supporting CI/CD pipelines within development workflows.
- Strong problem-solving, debugging, and troubleshooting skills.
Bonus Points:
- Experience in space industry software development, including flight software and ground systems.
- Familiarity with NASA-STD-8739.8 and ESA ECSS standards (e.g., ECSS-E-ST-40C, ECSS-Q-ST-80C).
- Experience with safety-critical software development (e.g., DO-178C, ISO 26262).
- Knowledge of hardware/software co-design and FPGA-based processing architectures.
- Experience with ARM-based devices.