We are launching people to the Moon and Mars. If you want to be part of this amazing mission and enjoy working in a great team environment, we would love to have you as part of our team that is making history, today. It takes big ideas and determination to take NASA's vision and make it reality. That's what we do every day.
The COMET contract provides overall management and implementation of ground systems capabilities, flight hardware processing, and launch operations at NASA's Kennedy Space Center in Florida. These tasks will support the International Space Station, Ground Systems Development and Operations, and the Space Launch System, Orion Multi-Purpose Crew Vehicle, and Launch Services programs.
As a member of the EGSSim Simulation Software team, you will perform as the Software Engineer for the Modeling and Simulation Integrated Product Team (M&S IPT) contributing to the EGSSim Simulation Tool codebase. This project involves many constituent parts spanning deployment, operating environments, and Programmable Logic Controller (PLC) emulation. Software development will involve working on one or more sections of the project, with contributions ranging from design, prototyping, development, integration, testing, documentation, and maintenance support.
Responsibilities
As a member of the Modeling and Simulation team, candidate will perform as a software engineer in the design of simulation software tools to support a large scale Command and Control system for both launch and vehicle processing. Under general supervision, job duties include:
- Participate as a developer in an agile team that is conducting daily scrum meetings, biweekly sprints and retrospectives, and group planning of development tasks and timelines
- Write and test new software, shape design, and participate in peer reviews to meet high-level NASA requirements
- Action internal, external, and user feedback to troubleshoot, improve, and maintain software under a CMMI compliant process
- Participate in design panels, technical assessments, and analysis tasks to determine how new capabilities and changes will impact the products and rest of the system
- Other duties as assigned
Required:
B.S. in Computer Science, Engineering or related field from an accredited college and university.
Proficient in the Java programming language.
This position has been posted at multiple levels. Depending on the candidate's experience, requirements, and business needs, we reserve the right to consider candidates at any level for which this position has been advertised.
Desirable:
- Experience with Gitlab or other CM systems with parity to Git
- Familiarity with the software life cycle involving design, development, testing, integration, delivery, and maintenance (with personal involvement in at least one cycle of software)
- Additionally proficient in one of these programming languages: C/C , Python
- Familiarity with IEC 61131-3 PLC code
- Capability to produce technical/design documentation and well-documented software
- Ability to work and seek feedback independently as well as integrate productively in a supportive team environment providing clear and effective communication
- Capable of flexibility and personal responsibility involve in an agile team: project planning, group estimation, and willingness to assist teammates
- Prioritizing and executing a fast-paced environment with varying requirements and deadlines
- Desire to learn, willingness to quickly absorb domain knowledge, and capability of taking/providing feedback
Highly Desirable Experience/Abilities:
- Jenkins/Accurev and automated CI/CD pipeline experience for EGSSim external integration
- Experience with writing Programmable Logic Controller (PLC) programs, PLC emulators or general familiarity with the behavior and functionality of PLCs
- Linux and Windows OS: kernel, threading, networking, and virtual machines experience
- XSLT experience and/or familiarity with XML or L5X format
- Natural language processing, syntax/grammar processors such as ANTLR
- Experience with large, multi-faceted software projects especially involving conversion tools, databases, and shell scripts
- Experience working in a large, agile team