Software Engineer - Mission Planning
Fairfax, VA | Contract
12+ month contract
Clearance: Secret (minimum)
- Conduct or participate in the research, design, development, and integration of Air and Missile Defense (AMD) related software models and wargame engine.
- Responsibilities also include enhancements, modifications and corrections to existing software.
- Responsible for coding, testing, integrating and documenting software solutions.
- Performs software requirements analysis, participates in research, designs, develops and tests software and tools, to include development of new work products or enhancing existing applications, systems or embedded products
- Codes, tests, integrates and documents software solutions
- Define and develop creative and innovative software architectures and solutions to address emerging challenges in systems-of-systems wargame integration.
- Support development and integration of large-scale wargame engine for AMD planning.
- Participate in a team environment to design, develop, enhance, and execute planning wargame engine in the AMD domain, including providing full life cycle support (requirement analysis, design, implementation, testing, and debugging).
- Lead a small team of junior engine to meet program development goals.
- Apply object-oriented design and development techniques primarily in the C++ programming language
- Develop unit test software through both automated and manual testing techniques to produce algorithm results.
- Analyze algorithm results to support verification & validation, regression testing, formal test events, and concept/feasibility studies.
- Investigate and resolve problems related to performance, consistency, and reliability.
- Produce documentation to capture requirements, technical concepts, software design, and user information.
- Deliver presentations to peers and customers internal and external to General Dynamics Mission Systems
- Experience with C++/Java - multi-processors/multi-threaded code.
- Experience with Model analysis, wargame/assessment algorithms.
- (Preferred) Experience developing software in a GNU/Linux environment
- Experience with MATLAB programming
- Familiarity with unit testing tools (e.g. Junit, Gtest, Gcov, Jacoco, and continuous integration software)
- Strong knowledge of Trigonometry, Non-Euclidean Geometry, and Ballistic Trajectory Equations
- Experience with mission planning
- Professional and experienced understanding of software engineering concepts, principles, and theories and skilled at applying technical standards
- Considerable knowledge of the software development process
- Considerable ability to grasp and apply new information quickly and handle ever increasing responsibility and assignments with growing complexity
- Shows initiative on assignments, and professionally executes projects with little direction
- Exercises independent judgment within defined procedures and practices to determine appropriate action
- Considerable ability to be a team player who thrives in collaborative environments and revels in team success, meeting and exceeding personal and team commitments
- Considerable knowledge of software tools supporting Integrated Development Environments (IDE), version control, defect reporting and scripting