- Provide software engineering support for a suite of high visibility, heavily used reporting and authoring tools and their underlying RESTful microservice infrastructure. Tasks include:
- Collect and document user and system issues.
- Provide required improvements to the product based on a recommended prioritization by the product owner.
- Work with a team of developers supporting and enhancing a suite of complex web applications and services that provide content management and collaboration in support of critical missions.
- Improve software and system architecture for improved efficiency and reliability.
- Document and update data models, schemas, and other technical specifications as needed.
- Extensive experience in planning, accomplishing goals, complicated tasks and providing consultation on complex projects as a top-level contributor or specialist. Have a firm grasp of modern computer programming with a minimum of six (6) years experience in programming and development of application software for complex systems, software testing and experience developing solutions integrating and extending COTS products.
- Have demonstrated technical writing skills and have generated at least five (5) documents in support of a software development project and experience designing and developing applications that contain a user-facing view component.
Special Technical Skills Desired:
- Familiar with Nginx
- Knowledgeable with using MongoDB
- Knowledge of Spring Boot
- Experience with AngularJS to enhance a suite of complex web applications
- Experience with ElasticSearch, Logstash, Kibana
- Experience using Git for control and source code management (SCM)
- Experience consuming and writing REST services in Java
- Experience with building and deploying software
- Experience with Agile methods, Scrum
- Detail-oriented and thorough in designing, coding, and testing
- Familiar with Test Driven Development and experience using Junit, Mockito, JS/UI test using a testing framework
- Proven technical troubleshooting and integration experience
Minimum Experience Required:
- At least ten (10) 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 six (6) years’ experience developing software in an enterprise environment. At least four (4) years of this experience must have been obtained in the last seven (7) years. At least four (4) years developing software for Windows (2000, 2003(or later), XP, Vista), UNIX or Linux (Red hat versions 3-5) OS and at least two (2) years of this experience must have been obtained within the last four (4) years.
- Bachelor’s Degree in Computer Science will be considered equivalent to four (4) years’ experience.
- TS/SCI with Polygraph Required