Design, develop, modify, test, and maintain high-fidelity real-time simulation software, executive control software, systems-level software, and scalable software applications supporting distributed training and simulation environments. Develop and maintain data-centric services, reusable software components, and development frameworks from research, design, implementation, testing, deployment, and sustainment.
Transition legacy applications to Service-Oriented Architecture (SOA) utilizing API-driven design principles. Design, develop, and maintain distributed software architectures, reusable services, APIs, middleware, and modern software solutions supporting enterprise simulation platforms.
Develop distributed simulation environments utilizing Distributed Interactive Simulation (DIS), High Level Architecture (HLA), and Test and Training Enabling Architecture (TENA). Support command and control systems, simulation scheduling, distributed processing, and real-time simulation technologies.
Develop, modify, and maintain hardware interface software, device drivers, middleware, and systems supporting distributed hardware and software architectures. Evaluate hardware and software integration, troubleshoot complex technical issues, and recommend improvements to system performance, reliability, scalability, and maintainability.
Design and execute manual and automated software testing, develop test procedures, contribute to automated test suites, perform software verification and validation, identify defects, and improve software quality throughout the development lifecycle.
Apply Object-Oriented Programming (OOP) and Object-Oriented Design (OOD) principles including inheritance, encapsulation, and polymorphism. Develop structured software interfaces, perform software requirements analysis, software architecture, design reviews, implementation planning, documentation, and configuration management.
Design prototypes for new technologies, software architectures, algorithms, engineering processes, and simulation capabilities. Conduct research and development activities supporting next-generation simulation technologies. Develop engineering tools and utilities while remaining current with emerging technologies through technical papers, industry publications, training, and conferences.
Provide technical leadership by mentoring junior software engineers, supporting project engineers and team leaders, estimating engineering effort, defining simulation engineering requirements, recommending technical solutions, and supporting project execution.
Collaborate with software engineers, hardware engineers, systems engineers, project engineers, program management, and cross-functional teams to deliver integrated simulation systems while communicating technical recommendations and supporting continuous improvement initiatives.
Support computer system requirements, hardware integration, software maintenance, system upgrades, and lifecycle management. Produce accurate technical documentation, engineering reports, operating procedures, and software documentation.
Maintain compliance with export control regulations, company security policies, and applicable laws governing technical data, software, equipment, and engineering documentation. Protect proprietary information, ensure documentation accuracy, maintain assigned tasks, adhere to work schedules, accurately record daily work activities, work safely in a constant state of alertness, support overtime and travel requirements as needed, and obtain or maintain a security clearance when required.
Minimum Qualifications: Bachelor's degree in Computer Engineering, Software Engineering, Electrical Engineering, Computer Science, or a related engineering discipline, or an equivalent combination of education and experience.