Purpose of PositionDesign, develop, and enhance high-fidelity simulation environments and real-time software systems supporting advanced training and testing platforms. Bridge hardware interfaces with complex distributed software architectures while leading technical efforts, defining engineering requirements, estimating labor, and guiding software development teams.
Tasks and ResponsibilitiesDesign, 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.
Minimum Education- Five (5)+ years of software engineering experience
- Experience developing simulation software
- Experience transitioning legacy software to Service-Oriented Architecture (SOA)
- Experience with API-driven software design
Equivalent education and experience may be considered
Minimum Experience5+ years of related experience in software engineering preferred.
Knowledge, Skills, AbilitiesProgramming Languages: C, Modern C++, C#, .NET, Python, Lua, Fortran
Simulation Technologies: Distributed Interactive Simulation (DIS), High Level Architecture (HLA), TENA, Command and Control, Simulation Scheduling
Software Architecture: Service-Oriented Architecture (SOA), API Design, Distributed Systems, Real-Time Systems, Object-Oriented Design (OOD), Object-Oriented Programming (OOP)
Model-Based Systems Engineering: UML, SysML, Model-Based Systems Engineering (MBSE)
Middleware: ZeroMQ, DDS, EMQX, JSE/Grid
Development Tools: Visual Studio, Visual Studio Code (VS Code), Eclipse
Operating Systems: Microsoft Windows, Linux, Red Hat Enterprise Linux (RHEL), Ubuntu Linux
Testing & Quality Assurance: Google Test, Automated Testing, Manual Testing, Software Verification, Software Validation
Source Control & Configuration Management: Git
Issue Tracking & Project Management: Jira, GitLab
Physical Demands and Work EnvironmentThe physical demands and work environment described here are representative of those that must be met and or encountered by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions. The employee will be regularly required to sit, demonstrate dexterity to handle or feel, speak, and hear. The employee is occasionally required to stand, walk, and reach with hands and arms. The employee must occasionally lift and/or move up to 10 pounds. Specific vision abilities required close vision, distance vision, color vision, peripheral vision, depth perception and ability to adjust focus. While performing the duties of the job, the employee is occasionally exposed to moving mechanical parts and vibration. The noise level in the work environment is usually moderate.