The Multiple Reconfigurable Training System (MRTS) Software Systems Engineer Senior is expected to apply excellent team leadership techniques and industry standard (e.g., ISO 9001:2008, CMMI, applying Waterfall, Spiral and Agile development methods) analysis and design techniques to design and develop complex software systems for trainers (e.g., surface and subsurface). Enhance corporate design capabilities and standards, while leading the software technical efforts of the engineering team. The position requires researching and applying advanced software architectures (e.g., run-time architectures, SAAS, S-1000D conversion, procedure automation, web based software development, automatic testing, ARINC 610C etc.), mathematical models, system modeling (e.g., shipboard systems, engines etc.), graphical models and programming techniques to design, develop, maintain and extend innovative products and solutions for simulation and training.
Essential Duties and Responsibilities:
Analyzes customers’ specifications to derive system requirements. Develop new software architectures and interface protocols.
Works independently to analyze and design efficient software solutions that fully satisfy all their respectively allocated and derived requirements for behavior and performance. Evaluate the interrelationship of system software components and design. Analyze the technical, logistical and cost risks associated with solutions, and make recommendations for mitigating risks.
Creates work breakdown structures to implement solutions, analyzes the complexity of constituent tasks, budgets and assigns appropriate resources for tasks’ execution, and schedules tasking to optimally meet project/program constraints using an integrated master schedule.
Prepares, coordinates, and leads Integrated Product Teams (IPTs). Conducts reviews to validate the correctness, completeness, and feasibility of proposed solutions. Successfully and succinctly presents technical information to all levels of personnel. Satisfies all action items identified by IPTs during reviews, and ensures that all exit criteria are satisfied.
Strong coordination, organization, teaming and communication abilities and the ability to work under pressure and time constraints. Supervises IPT engineers, advises and mentors team members.
Creates and tests trainer components to established corporate standards for format, content, and documentation. Ensures implementations’ flexibility, maintainability, and extensibility using object-oriented principles. Conducts teams’ peer reviews to validate adherence to hardware, coding and implementation standards.
Coordinates the quality and configuration management of components, ensures the repeatability and uniformity of tests using automated test code when possible. Coordinates the integration of tested software components with hardware into a final product.
Develops and modifies test plans and procedures, supervises internal execution of the test procedures to validate the correctness of the integrated product, and manages the assignment and resolution of all discrepancies/deficiencies documented during testing. Supports testing at all levels (e.g., unit, functional, system and Hardware/Software Integration (HSI)), test.
Supervises the delivery of all items required by the Technical Support Data Package and the Contract Data Requirements List (CDRL). Assists technical writers with document design, documenting components’ design, interfaces, and use. Understand and use Microsoft Word and PowerPoint.
Non-Essential Duties and Responsibilities:
Support new business proposal efforts.
Ability to understand, write, debug and review complex code (e.g., C#, C++). Understand and use Microsoft Visual Studio.
Support research and development in an individual and/or team environment.
All other duties as assigned.
Education / Experience:
The position requires a minimum of a Bachelor’s degree in an engineering discipline with a minimum of eight (8) years of directly related simulation training systems experience, and a minimum of four (4) years of simulation and modeling engineering software development experience (e.g., surface/subsurface shipboard systems, flight systems, maintenance trainer systems etc.), including software development experience in a gaming environment (e.g., Unity, Unreal, Cry Engine). Team leadership experience for team sizes of 5-10+ persons is desired. Experience with trainer simulation systems is a plus (e.g., ARINC 610C, subsurface systems, flight systems, weapon systems, OFT design, WST design), real-time executives, distributed interactive simulation, I/O, aural cueing systems, interface protocols (e.g., TCP/UDP, serial,MIL-STD-1553, MIL-STD-429 etc.), multi-function displays interface, visual systems etc.)
Ability to obtaining and maintaining US Department of Defense (DoD) secret security clearance.
The candidate must have a thorough understanding of gaming/trainer architectures, computer architectures and operating systems, game engine design, the design and analysis of algorithms, and the use of configuration management tools (e.g., Vault, Subversion etc.) and requirements analysis/management tools (e.g., DOORS, TFS). Experience with programming languages such as C# (and preferably C/C++), use of integrated development environments (e.g., Visual Studio, KDevelop) is a plus.
To perform this job successfully, an individual should have advanced level of proficiency with:
Microsoft Office products including Word, Excel, PowerPoint, and Project to manage complex documents and data. Additionally, must be knowledgeable of a variety of design, development, and database software to facilitate development of designs and maintaining varying complexities of software, hardware and documentation.
Supporting technical and budget documentation and making presentations to management and customers.
Use of the Internet.
Create diverse standalone or integrated documents or reports with varying complexities to support program operations, financial reporting, human resources reporting and analysis, or other required business documents as needed.