NorthHill Technology Resources is seeking a Java Developer to support our government client located in Rockville, MD. The Java Developer will work as part of a fast-paced, structured software development team under to guidance of a Scrum Master and Project Manager.
Knowledge & Experience Requirements:
- Perform application development and support.
- Understand and apply development design patterns.
- Interpret and apply design disciplines including Object-Oriented Design and Analysis ad Domain-Driven Design.
- Master and leverage common architectural styles and patterns (Layered, Clean, CRUD, CQRS, etc).
- Understand and apply quality techniques and practices (automated unit testing, Test Driven Design/Development, java performance analysis, continuous integration).
- Recognize problem and modification identification, classification, and prioritization.
- Design modification and execution of solution.
- Testing of the application as required when changes are made to the, application, its infrastructure or interfacing systems.
- Provide the modification as part of a release package for installation in the operational environment.
- Conduct data quality and data management.
- Creation and maintenance of system documentation and artifacts.
- Conduct disaster recovery testing.
- Provide support of critical production issues.
- Work well on small, high-performing teams.
- Bachelor’s degree in associated discipline.
- Minimum 4 years Java-related work experience.
- Java 8+, Hibernate, Maven, relational databases (Oracle, PostgreSQL, etc.) , REST Services, Spring Boot.
- Experience in Agile/Scrum environment.
- Vaadin, Spring Boot, Docker, Amazon Web Services, JOOQ experience in a continuous integration environment.
- Scripting languages and experience (Ruby, Python, etc.)
- Servlet, JSP, SOAP, JBPM5, Drools, jQuery, JMS, Apache Lucene/SOLR, Elasticsearch
- Knowledge of building Continuous integration and continuous deployment is plus
- Experience with AWS platform services, and application/service deployment in AWS
- Experience with containerized (Docker) applications and services
- Willingness to learn and demonstrable experience with other programming languages (Scala, Clojure, Ruby, Python, etc.)