VES LLC is a small business focused on developing mission-critical software solutions for the defense industry. They are seeking a Java SpringBoot Software Engineer to work on the Server Core team, responsible for developing Spring Boot microservices and APIs for the US Army Fire Support Command and Control system.
Responsibilities:
- Build Java-based services that enable users to manage tactical data supporting a Common Operating Picture and Fire Support capabilities
- Build and maintain reusable components as part of our service layer
- Develop, test, and manage software as directed and determined by the project lead
- Develop software leveraging the SpringBoot Java Framework
- Work on efforts where there's a core team delivering capabilities to other development teams to extend and integrate
- Work on applications and components that integrate with COTS messaging solutions such as RabbitMQ
- Maintain and improve the performance of existing software solutions
- Clearly and regularly communicate with management and technical support colleagues
- Recommend improvements to existing software solutions as necessary
- Work closely with the customer and other stakeholders to understand requirements and design software solutions to meet their needs
Requirements:
- Experience developing RESTful services using the Spring Framework / SpringBoot
- Develop and maintain APIs using Spring Boot components including: Spring REST Controllers, Spring Web / Spring MVC, Spring Validation, Spring Security (authentication/authorization patterns), Spring Data JPA / Hibernate
- Experience implementing complex mapping logic using MapStruct features such as: Custom mappers and expressions, Nested object mappings, Enum/value translations, AfterMapping / BeforeMapping hooks, Mapping inheritance and reusable mapping configurations
- Solid problem-solving and debugging ability. Must be comfortable using a debugger
- Solid CS fundamentals including object orientation, data structures, advanced algorithms, complexity, automata, operating system fundamentals, computer architecture, and systems analysis and design
- Familiarity with professional software engineering practices for the full software development life cycle, including requirements elicitation, coding standards, code reviews, source control management, agile development, build processes, testing, and operations
- Experience using Git (or a Git-based implementation, e.g. Stash, Bitbucket, Github) in a collaborative production environment-especially on a large-scale software project
- Experience using Jenkins, Gradle and Maven
- Published software projects for external consumption, or have made significant contributions to existing open-source projects
- Experience with the Agile or Scrum development methodology
- Experience working as part of a software development team
- Experience with Atlassian products (Jira, Bitbucket/Stash, Nexus)
- Experience with continuous integration or build automation (e.g. Jenkins, Bamboo)
- Experience managing project SDKs
- Proficiency in testing methodologies and popular testing frameworks
- Excellent problem-solving skills
- Strong communication and teamwork skills
- Ability to work independently and in a team-oriented environment
- Bachelor's degree in Computer Science, Software Engineering, or related field (or equivalent work experience)
- 3-5+ years of professional experience in software development
- Ability to obtain and maintain a Security Clearance
- Excellent oral and written communication skills with respect to all the above requirements
- Strong proficiency in Java
- Experience with the Spring framework
- Proven experience in building RESTful web services
- Experience using a profiler to debug performance issues
- Experience with Atlassian (JIRA, Confluence)