Job Description:
Job Summary
The Software Engineer is responsible for intermediate-level software analysis, design, and implementation of user-computer interfaces for training devices and systems. This role focuses on developing real-time simulation software for operator and maintenance training while ensuring quality, functionality, and compliance with development standards.
Essential Job Functions
- Analyze, design, and implement real-time software for training systems.
- Participate in software review processes, including peer reviews and compliance with development plans.
- Track, document, and resolve discrepancies prior to product release.
- Present project updates and technical issues during review meetings and ensure action items are recorded.
- Manage multiple projects simultaneously and meet deadlines.
- Interact with customers to support project requirements.
- Train and mentor junior software engineers as needed.
- Safely handle equipment and materials while adhering to work schedules, including overtime.
- Perform additional duties as assigned.
Non-Essential Job Functions
- Assist in developing effort estimates for training projects.
- Support proposal development activities.
Knowledge, Skills, and Abilities
- Background in real-time simulation software development; hardware experience is a plus.
- Proficiency in C++ and/or C programming languages.
- Familiarity with UNIX/Linux operating systems preferred.
- Experience with development tools such as Visual Studio and OpenGL preferred.
- Strong problem-solving and software diagnostic skills.
- Self-motivated with the ability to learn quickly and manage priorities.
- Ability to prepare and deliver technical presentations is a plus.
Education and Experience
- Bachelor's or advanced degree in computer science, engineering, or a related field with at least two (2) years of experience; or
- High school diploma (or equivalent) with five (5) years of relevant programming or engineering experience.
- Experience with Unreal Engine required.