Java Webservices Developer
Data Services Software Engineer - Product Master Data Management
The Software Engineer will be responsible for developing enterprise data services in a Service Oriented Architecture (SOA) environment. The Software Engineer must work within an agile development team to produce a consistent set of data services that can be utilized for master data collection and distribution across multiple consuming sites and applications. The candidate will drive and champion test driven development and agile development, as well as promoting and evolving best practices within the organization. The ideal Software Engineer is detail oriented, self-directed, self-motivated, with a strong capacity for working successfully and flexibly with members across the organization.
* Work in partnership with Architecture, Master Data Management and consuming application teams to design, develop and deliver data and integration services and messaging across multiple technology domains.
* Ensure that code adheres to strict standards and best practices for testability, accessibility, security, object-oriented practices and performance.
* Identify ways to package new and existing services and capabilities to provide a comprehensive SOA-based platform for data collection and distribution
* Model, design, and develop REST-based web services, service wrappers, service interfaces, APIs, messaging systems (e.g. via ESB technologies) and other integration patterns as may be required
* Model and implement solutions for different deployment and continuous integration scenarios, and assist in the development of a build/deploy environment
* Design databases and data messages exchanged among systems based on evolving standards in the domain
* Design and build a reusable, expandable and scalable data services platform that will integrate data from various sources and interfaces that include structured and un-structured data sources
* Practitioner of Agile/Scrum and test driven development
* Excellent foundation in computer science, with strong competencies in data structures, graphs, algorithms, JVM concurrency, thread-safe design, OO design and services architecture.
* Strong communications skills and the ability to communicate technical concepts to non-technical people and work with a variety of internal and external development groups
* Experienced at software performance, scalability, maintainability, reusability and security
* Work both independently as well as within a team involving technical partners and domain subject matter experts to consistently develop and implement high quality, secure, scalable software within expected time and budget
* Ability to operate in a fast paced agile environment with ability to change rapidly
* Masters degree in Computer Science or equivalent experience required.
* Strong core Java, OOD, Design Patterns, SOA, REST-based web services
* Minimum seven (7) years experience in software engineering and design.
* Minimum two (2) years experience in data services
* Minimum two (2) years experience utilizing messaging / ESB based communication
* Ex: MQ, ActiveMQ, Kafka, Camel, Mule, JMS, etc.
* Extensive experience in Test Driven Development (TDD) methodology and tools
* Proficiency with XML/XLST/JSON/JSON-LD
* Knowledge of open source technology such as Linux and Apache stacks
* Maven, Jenkins or other continuous integration
* AWS services such as RDS and S3
* Demonstrable knowledge of both stream and ETL/Batch data aggregation patterns
* AWS services such as EC2, RDS, and S3
* Multiple DBMS storage engines, models and access methods:
* NoSQL - Mongo, Cassandra, etc.
* SQL - MySQL, SQL Server, Oracle, etc.
In addition, the following experience is beneficial:
* Experience with Master Data Management, Data Warehousing and Analytics
* Experience in web-publishing and product delivery
* Experience NoSQL, such as MongoDB, Graph database (OrientDB, Neo4J, or Blazegraph)
* WS02 API/ESB Management
* Scala, Python