Software ArchitectCamgian 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.QualificationsBachelor's degree in engineering or related technical field with at least 15+ years of applicable experience.Experience designing distributed systemsAbility to develop in multiple programming languages such as C++ and PythonKnowledge of DevOps and continuous integrationExperience with distributed and multiagent systems along with managing their emergent behaviorsExperience with pub-sub and data centric architectures such as DDSExperience with real time and event-based systemsExperience developing mission critical softwareExperience building Modular Open Systems ArchitecturesUnited States CitizenshipDesired SkillsExperience with Model Based Engineering tools (Enterprise Architect, Cameo, etc.)Experience with graphical modeling languages like UML, SysML, and defense frameworksDomain experience in combat systems and sensor fusionProcess Engineering and definitionDeveloping for secure environmentsDomain experience in AI/ML, data science, and prognosticsExperience with multiple virtualization and containerization approaches including Proxmox and AnsibleExperience with Git Lab, Jira, Jenkins and other standard toolingDesigning for security and mitigating vulnerabilities/attack surfaceKey ResponsibilitiesDefine software and component architecturesCreate comprehensive documentation, including architecture diagrams, technical specs, design patternsDesign solutions that integrate with existing systems and third-party servicesOversee low level software design, participate in reviews to ensure adherence to architectural standardsEnsure approaches will meet key performance parametersEnsure key system characteristics are realizable such as scalability and reliabilityProvide technical leadership and mentoring to software staff on architecture concernsPerform trade studies and technology selectionIdentify potential risks and develop mitigation strategies