Job SummaryThe Software Developer is responsible for designing, developing, testing, and maintaining software applications that support simulation-based training systems. This role collaborates with engineering, hardware, and instructional design teams to build high-quality software solutions used in simulation environments for training and operational readiness.Travel required (0-10%)
Responsibilities/Duties/Functions/Tasks- Design, develop, test, and maintain software applications used in simulation and training systems.
- Collaborate with cross-functional teams including engineers, programmers, and system integrators to implement software solutions.
- Write clean, efficient, and maintainable code following established coding standards.
- Participate in the full software development lifecycle, including requirements analysis, design, development, testing, and deployment.
- Troubleshoot, debug, and resolve software defects and performance issues.
- Develop and maintain technical documentation for software applications and system functionality.
- Support integration of software with hardware systems and simulation platforms.
- Participate in code reviews to ensure quality, reliability, and maintainability.
- Assist with system upgrades, enhancements, and software maintenance activities.
Other DutiesPlease note this job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee for the job. Duties, responsibilities and activities may change at any time with or without notice.
QualificationsMinimum Requirements- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, or a related field.
- 2-5 years of experience in software development (or internship experience for entry-level roles).
- Proficiency in programming languages such as C++, C#, Python, or Java.
- Experience with object-oriented programming and software development methodologies.
- Knowledge of software testing, debugging, and version control systems (e.g., Git).
- Strong analytical and problem-solving skills.
- Ability to work collaboratively in a team environment.
Preferred Qualifications- Experience developing software for simulation, modeling, or training systems.
- Knowledge of game engines or simulation frameworks such as Unity or Unreal Engine.
- Familiarity with real-time systems or hardware/software integration.
- Experience with Agile or Scrum development methodologies.
Essential Mental Requirements- Strong problem-solving and analytical skills.
- Excellent time-management skills.
- Must possess multi-tasking, organizational, and planning skills;
- Excellent written and spoken communication skills for documentation, intra-team, and interdisciplinary communication.
Essential Physical RequirementsThe physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job.
While performing the duties of this job, the employee is occasionally required to stand; walk; sit; use hands to finger, handle, or feel objects, tools or controls; reach with hands and arms; talk or hear. The employee must occasionally lift or move office products and supplies, up to 50 pounds.
Equipment/Software/Tools Used- Desktop or laptop computer with high-performance development environment
- Software development tools (e.g., Microsoft Visual Studio, Visual Studio Code, Eclipse IDE)
- Version control systems (e.g., Git, GitHub, GitLab)
- Programming languages and frameworks (e.g., C++, C#, Python, Java)
- Simulation and game development platforms (e.g., Unity, Unreal Engine)
- Debugging and testing tools
- Integrated development and build automation tools
- Project management and collaboration platforms (e.g., Jira, Confluence)
- Database management tools (e.g., MySQL, Microsoft SQL Server)
- Software configuration and build tools
- Standard office equipment (printer, scanner, telephone, and video conferencing systems