The Principal Software Engineer will work closely with Systems Engineers to deliver Data Flow Inventory services, visualizations, analytics, and metrics. The engineer may have to coordinate efforts with personnel supporting other contracts/TTOs.
Duties will include recommending and implementing modern technology stacks to include open source software; developing scalable microservices in a cloud based environment; integrating data from external systems; developing a query application programming interface (API) for systems integration; developing visualizations of data flow inventory; implementing a common data model across heterogeneous data inputs; and developing analytics and metrics.
- Meet the Principal Software LCAT requirements.
- (15) years of Software Engineering experience is required.
- Experience with Cloud platforms such as Amazon Web services (AWS) and Azure, with attention to building cloud-agnostic solutions
- Microservices architecture and implementation
- Willingness to work with systems engineers and customers to prototype and explore architectures to adapt to mission needs
Required Labor Category Skills:
- At least fifteen (15) years in software development/engineering, including requirements analysis, software development, installation, integration, evaluation, enhancement, maintenance, testing, and problem diagnosis/resolution. The individual must be able to communicate directions and provide guidance to junior programmer/analysts, as required
- At least eight (8) years developing software using the Java programming language.
- At least six (6) years of this experience must have been obtained in the last eight (8) years.
- At least six (6) years demonstrated experience developing software for Windows (2000, 2003, XP, Vista), UNIX and Linux (Redhat versions 3–5) operating systems. At least two (2) years of this experience must have been obtained within the last four (4) years
- Experience in planning and accomplishing goals and complicated tasks and providing consultation on complex projects as top-level contributor or specialist
- Familiarity with the software development process described in the MIL-STD498, JSTD-0 16, and/or US 12207 and possess at least two (2) years of experience developing software in accordance with these standards
- At least six (6) years in programming and development of application software for complex systems and software testing
- Experience architecting, designing, developing, testing, and supporting integration of software systems with functional requirements within a CMMI Level 2 process structure
- Experience “wrapping” legacy systems or components as Web Services within a SOA framework
- Developing solutions integrating and extending COTS products
- Visualization experience preferably with graph datasets showing network relationships with overlays of metadata.
- Experience with virtualization, containerization, Docker, Kubernetes.
- Modern user interface development preferably in a web enabled environment (ex. Vue.js, React, Angular)
- Backend development and integration experience consuming RESTful services, incorporating JSON data formats into NoSQL databases like MongoDB.
- Experience with Spring Core, Spring Boot, Spring MVC, Spring Integration and Spring Security.
- Experience with JUnit, Spock, Powermock, Mockito, or other unit testing frameworks.