We have an excellent opportunity for a J2EE Solutions Engineer to be responsible for the technical implementation of a project and deliver high quality development using diverse tools and systems including but not limited to:
- SOA (Rest/WSDL/XSD/XML)
- Spring (WS/IOC/Integration)
- Spring Boot
- Spring Batch
- Spring Cloud Data Flow
- Oracle Coherence
- Multi-tiered infrastructure including load balancers, databases, apache, application servers etc.
- Cloud - Racspace, aPaaS, AWS
Strong understanding of key initiatives including:
- Agile development practices (Scrum/Kanban).
- "DevOps" including continuous deployment.
- TDD - Test driven development
Work across multiple phases of software development within a project as a team member or dealing with the most technically challenging assignments. This includes:
- Working directly with business areas to clarify detailed technical requirements.
- Designing, coding and unit testing the most complex software components for new or enhanced IT systems to a high level of quality, producing appropriate documentation.
- Providing technical support to business analyst/project managers and coaching to less experienced staff across a geographically dispersed teams
- Maintaining an expert level awareness of relevant software design techniques, development tools and processes, providing leadership in the use of these across the organisation area.
- Assist in periodic system evaluation to identify opportunities for continuous improvement
- Can describe the overall function of several components in the technical platform
- Demonstrated very strong level of technical expertise both within own area of responsibility and other IT domains
- Has comprehensive understanding of full development lifecycle and is actively involved in all phases
- 15+ years of experience designing and implementing end-to-end solution architectures for large and complex systems. Extensive experience with Service Oriented Architecture (SOA), systems design, development, integration and executing n-Tier applications
- 12+ years of software development experience on a J2EE platform
- 12+ years of software development experience in standard J2EE frameworks that include Spring and Hibernate.
- 12+ years of experience in Web Services design and development preferably Spring WS
- 5+ years with experience with Java Spring Batch processing large amounts of data
- Experience with Enterprise Integration Patterns including:
o Enterprise Service Bus (ESB)
o Java Messaging Services (JMS)
o Event Driven Architectures
- Experience with caching technologies like Terracotta and Coherence.
- Experience with continuous development and tools like Jenkins.
- Experience using build technologies like Maven
- Ensure all SLA's are met for assigned tasks.
- Perform on-call support and pager duties as assigned by Team lead.
- Report over or under allocation to the Team lead, forecast work remaining, identify and communicate variance to plan.
- Ensuring smooth transition of application into production
Software Design, Programming and Unit Testing
- Designing software modifications from supplied requirements and design specifications using agreed standards and tools, achieving well-engineered results that follow the agreed implementation level software architectures.
- Taking responsibility for the design, coding, testing, and documentation (as defined by the SDLC process) of particularly large, complex or mission critical software programs.
- Proposing options and preparing cost estimates to enable the business area to make informed decisions
- Adhere to all client standards, Policies and governance practices.
- Assume ownership of various initiatives across Solutions Delivery
- Provide issue response and root cause analysis on work assigned by Team Lead and Project Lead.
- Planning, designing and conducting Unit and System Integration Tests, correcting errors and re-testing to deliver an error-free product.
- Reacting quickly and as necessary to live software errors and service problems, limiting downtime and resolving the problem during project handover.
- Report progress, delays and risks on assigned activities to Project Lead and Team Lead.
- Raise awareness when existing code, systems or processes do not meet current quality expectations and standards.
- Maintain code and all related artifacts in source control; perform code merges and resolve conflicts as defined by development process, update documentation and automated tests.
- Develop code, configuration files, build scripts, schemas or other artifacts as assigned by Team Lead.
- Develop system integration test to verify the code running in its functional environment.
- Work with the Project Lead and Team Lead to schedule features into Releases.
- Create implementation plans and Change Management Requests as assigned.
- Maintain accurate feature status during development by the agreed upon SLA.
- Verify build and deployment completeness of the features owned in the QA environment before making it available for Testing.
- Review the feature requirements as presented by the Business Analyst and the delivery team, in context of the overall project feature set and existing implementation. Translate requirements to technical concepts.
- Contribute to the logical/physical data models, class diagrams, activity diagrams, sequence diagrams and UI prototypes.
- Assist QA and production testing and deployment; assume ownership of the work until it passes successful Production Verification Test.
- Test all code, content, build and unit test changes in the lowest environments first, if such environments exist.
- Taking part in reviews of own work and leading reviews of colleagues' work.