Software Architect
Kepler Communications
Key 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
Required Skills & Qualifications:
- 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