Analyzing high level customer requirements and deriving lower-level functional requirements.
Software development tasks including detailed software design, coding, and testing of customer desired features/user stories.
Briefing software designs and demonstrating software release functionality to users.
Develop and sustain new and existing applications; as well as troubleshooting and resolving various software issues.
Contribute to the creation of new distributed components and interactions that align with the future system architecture.
The existing multi-tiered system is developed on a cloud infrastructure with several consumer-facing web applications
Basic Qualifications:
5+ years of experience designing and developing software for complex systems (i.e. Distributed Systems, Multi-Threaded and Multi-Process Applications) and a foundation in computer science and software development
3+ years’ experience in Java programming
1+ years of experience in object-oriented programming
Experience with distributed version control systems such as Git, IBM Rational Team Concert, etc.
Preferred Qualifications:
Experience with one or more of the following: HTML 5, CSS 3, JavaScript, Firebug and JS frameworks (REACT, jQuery, jQuery UI, Open Layers, etc.), Spring Framework, Hibernate, RDBMS, MongoDB, XML, SOAP, REST, WSDL/Web Service protocols
Experience using dependency management (Ivy, Maven, Gradle)
Experience developing and maintaining SOAP, RMI, REST APIs and interfaces
Experience using cloud-based infrastructure (AWS)
Experience using automation server (Jenkins)
Experience/knowledge of the GEOINT domain
Familiarity with practices such as test-driven development (TDD), agile software development, continuous integration, and dependency management is preferred.
Familiarity with Agile or SAFe practices, including daily standup, User Stories, Sprints, and Release Planning