Job DescriptionWe are seeking a highly motivated and experienced Software Architect to join our TacAir team. The successful candidate will play a pivotal role in defining and evolving the software architecture for our next-generation airborne platforms, with a focus on open architectures, high-performance computing, and integration with Software Defined Radio (SDR) systems. This role requires a strong understanding of software engineering principles, system design, and the ability to translate complex requirements into elegant and practical solutions. You will be a technical leader, mentoring other engineers and driving architectural consistency across multiple projects.
In addition to software architecture responsibilities, you will be responsible for partnering with other discipline leads on the programs to help ensure that program objectives are met, and that software engineering has consistent, predictable performance.
Software Engineering is fast paced and dynamic. You will need to be self-motivated, and highly collaborative to succeed in this role.
Responsibilities:- Architectural Leadership: Define and document the software architecture for new and existing TacAir systems, ensuring alignment with overall system goals, security requirements, and industry best practices.
- Open Architecture Development: Champion the adoption of open architectures (e.g., DDS, ROS2, modular architectures) to promote interoperability, portability, and future-proofing of our systems.
- SDR Integration: Lead the integration of Software Defined Radio (SDR) capabilities into airborne platforms, including waveform processing, modulation/demodulation, and communication protocol development.
- Requirements Analysis: Collaborate with systems engineers and stakeholders to analyze system requirements and translate them into detailed architectural specifications.
- Design & Implementation Oversight: Provide technical guidance and oversight to software development teams during the design, implementation, and testing phases.
- Technology Evaluation: Research and evaluate emerging technologies and frameworks to identify opportunities for improving our software architecture and capabilities.
- Code Reviews & Mentorship: Conduct code reviews and provide mentorship to junior engineers, fostering a culture of quality and continuous learning.
- Documentation: Create and maintain comprehensive architectural documentation, including diagrams, interface specifications, and design rationale.
- Collaboration: Work closely with hardware engineers, systems engineers, and other stakeholders to ensure seamless integration of software and hardware components.
Required Skills and EducationRequired Qualifications: - Bachelor's Degree in Computer Science, Software Engineering, or a related field. (Master's degree preferred).
- Minimum of 12+ years of experience in software development, with at least 3+ years in a software architecture role.
- Strong proficiency in C++, with experience in modern C++ standards (C++11/14/17/20).
- Solid understanding of software design patterns, architectural styles, and software engineering principles.
- Experience with real-time operating systems (RTOS) and embedded systems development.
- Experience with software configuration management tools (e.g., Git).
- Excellent communication, interpersonal, and problem-solving skills.
- Ability to work independently and as part of a team.
Preferred Skills and EducationDesired:- Hands-on experience with Open Architecture Frameworks and high-performance computing (e.g., multi-core processors, GPUs, optimized libraries).
- Strong understanding of Software Defined Radio (SDR) concepts and technologies, including SDR architectures, waveform development, and signal processing algorithms.
- Experience with communication protocols (e.g., UDP, TCP/IP, MIL-STD-1553, ARINC 429).
- Experience with formal methods and model-based systems engineering (MBSE)
- Experience with containerization technologies (e.g., Docker, Kubernetes).
- Experience with Agile development methodologies.