Top Criteria for Position
- Building back-end data entities in Java/Spring Boot; data modeling/mapping, synchronization with current back-end systems
- Creating automated tests
- Develop/Maintain Get, Put and Post logic for restful interface
As part of the initiative to modernize its software engineering practices, this person will be responsible for software design, development, and quality testing for one or more scrum teams developing REST-based entity microservices. Development is heavily focused on iterative development and incremental release of product features, using agile methodology and automation (DevOps and integration testing). The ability to work in a changing, often-ambiguous environment is essential. Creativity and collaboration are foundational skills.
This person will lead development for a platform team focused on building out REST-based entity microservices for next-generation service architecture. The entity microservices will align with the business entities, with multiple related services owned by a single platform team, along with the platform data store(s). Services are deployed to an internal cloud (Pivotal Cloud Foundry). Development is done using agile methods (scrum mostly) and modern software development tools and techniques, including continuous integration and deployment (CI/CD) with GitHub, Jenkins, and Artifactory, and test automation using Cucumber and JMeter.
As a lead engineer, you will work with technical managers, architects, and subject matter experts to define and refine requirements and API specifications; perform analyses of existing business services and data stores (SQL/NoSQL); create detailed designs; write code and unit tests; help the team achieve consistent and quality code through code reviews and code refactoring; coordinate with QA engineers to define test cases and ensure they are satisfied; act as a mentor to others on the team.
A critical role will be to interface with technical and non-technical people in other areas to understand use cases and deliver services that meet the needs of new applications. In addition, initially the new REST-based entity services are built atop existing systems, so understanding those systems and their data models - and how that data maps to the API data models - will be crucial.
The successful candidate must be competent to work at the highest technical level of all phases of service definition and development and be capable of leading teams in these efforts.
The successful candidate will have experience and expertise in the following areas:
- Java development (at last 5 years of experience)
- REST-based services, microservices or other Web services
- Design (APIs, data models, sequence diagrams, class diagrams)
- Automated integration tests, preferably using an external automation tool
- NoSQL databases such as CouchDB or MongoDB would be a plus
- Accessing data on mainframes or through RPC services would be useful
- Sprint Boot and Spring Security would be plus; OAuth would be a plus also
- Cloud/VM infrastructure and technologies (PCF preferred)
- Agile methodology, using Scrum, Kanban, or similar techniques
- DevOps and continuous integration (CI) using Jenkins and Maven
- Modern IDEs like Eclipse and version control systems like GitHub
Responsibilities will include:
- Lead developer on the scrum team responsible for the design and development of services implementing REST-based APIs.
- Work with and mentor other developers on the team, including pair programming and code reviews.
- Work with the QA team and developers to define and implement test strategy, and to ensure quality.
- Work with scrum master to break stories into tasks and provide estimates, and with the team to ensure the development efforts are focused and aligned with stories.
- Work with technical manager(s) and scrum master in communicating status, figuring out sprints and milestones, and aligning sprints to business needs.
- Work with contractors in delivering services.
- Work with developers, business analysts, scrum masters, and others who are working at a remote location, or virtually.
- Partner with architects to help set the direction for maturing use of/retiring/adding technology components in the environment.
- Provide technical guidance to consumers of entity services.
- Lead efforts to resolve urgent issues with production services.
- Lead efforts to develop standard practices, components, guidelines for use of complex technology components.
- Bachelor’s degree in Computer Science or Engineering, or equivalent work experience
- 8+ years relevant experience, preferably 2-3 years working at a healthcare-related company; less experience required with Master’s degree