Job Description :
Direct client Local Only : Java developer (WA, 6+Months)


Location : Seattle, WA
Duration : 6+Months




JD and additional info:
The developer who is leaving was the designer and primary developer for our “CloudScale” microservice layer. He established not only the design, but also the corresponding development practices required to keep the quality of our service layer at a sufficiently high level. These practices include building robust unit tests for all services, and changes to services, so that they can be modified and released to production with a guarantee that they are fully backwards compatible. (In other words, with certainty that existing client applications will not be negatively impacted Additionally, he established the practice of delivering services packaged for deployment in Containers, a basic prerequisite to implementing Continuous Integration and Continuous Delivery.

We are looking for a skilled Java developer who understands these principles, based on real world experience, and who can not only maintain and extend existing services but also contribute to the design of future services and collaborate with other developers in the building, maintenance and consumption of services.

A viable candidate must quickly ramp up to fully understand our CloudScale design, architecture and development practices. They must be able to add new services and fix or modify existing services in a manner that localizes changes to minimize the need for regression of existing applications. All modifications or additions must be implemented consistently with our documented architecture, unless a change to the established design pattern is agreed to. This person will need to work collaboratively, iteratively and incrementally with web UI and DataPower developers to build services in support of the development of new functionality in existing or new web applications.

Required
Experience with services (“micro services”) especially RESTful services
Experience with Spring 4.x MVC applications
5+ years of Java Experience, especially Java 8
Strong understanding of common OO design patterns and service patterns
Experience with distributed architectures
Exposure to Groovy and willingness to work with the language

Preferred
Ability to lead the evolution of a small distributed services base architecture
Ability to occasionally mentor junior developers
Ability to develop architecture with input from peers in related disciplines (QA and Operations)

Bonus
Familiarity with HATEOAS concepts, especially Spring HATEOAS
Experience with Groovy, the more the better
Experience with Groovy Junit
Experience with Docker, must be willing to learn
Experience with Git, must be willing to learn
Experience with CI, especially TeamCity
Experience with Release Management & Semantic Versioning