Software Architect
Camgian is seeking an experienced software architect to help design our Counter-Unmanned Aerial Systems (C-UAS) line of products. As a Software Architect at Camgian you will serve in a high impact role defining how current and future operational needs will be addressed. You will contribute to the overall systems architecture and requirements but will be primarily responsible for the definition of software and component architectures for complex, mission critical systems. You will also find opportunities for reuse across the enterprise and identify architectural patterns. The position will have a high level of exposure from the executive level to the implementation teams and will require good written and verbal communication skills. The ideal candidate encourages an environment that promotes excellence, innovation, collaboration, and teamwork.
Qualifications
Bachelor’s degree in engineering or related technical field with at least 8 years of applicable experience or master’s degree with 6 years of applicable experience
Experience designing distributed systems
Ability to develop in multiple programming languages such as C++ and Python
Knowledge of DevOps and continuous integration
Experience with distributed and multiagent systems along with managing their emergent behaviors
Experience with pub-sub and data centric architectures such as DDS
Experience with real time and event-based systems
Experience developing mission critical software
Experience building Modular Open Systems Architectures
United States Citizenship
Desired Skills
Experience with Model Based Engineering tools (Enterprise Architect, Cameo, etc.)
Experience with graphical modeling languages like UML, SysML, and defense frameworks
Domain experience in combat systems and sensor fusion
Process Engineering and definition
Developing for secure environments
Domain experience in AI/ML, data science, and prognostics
Experience with multiple virtualization and containerization approaches including Proxmox and Ansible
Experience with Git Lab, Jira, Jenkins and other standard tooling
Designing for security and mitigating vulnerabilities/attack surface
Key Responsibilities
Define software and component architectures
Create comprehensive documentation, including architecture diagrams, technical specs, design patterns
Design solutions that integrate with existing systems and third-party services
Oversee low level software design, participate in reviews to ensure adherence to architectural standards
Ensure approaches will meet key performance parameters
Ensure key system characteristics are realizable such as scalability and reliability
Provide technical leadership and mentoring to software staff on architecture concerns
Perform trade studies and technology selection
Identify potential risks and develop mitigation strategies