We are seeking a developer responsible for building and supporting applications. Your primary responsibility will be to design and develop these layers of our applications, and to coordinate with the rest of the team working on different layers of the infrastructure.
A commitment to collaborative problem solving, sophisticated design, and quality product is essential.
Areas of responsibility may include but not limited to
Perform a high-level impact analysis, establish Scope and provide estimates based on technical requirements.
Proactively liaise with all stakeholders.
Create required planning tasks in SDLC tool and set due dates according to agreed milestones.
Analysis and Design :
Actively participate in the collaborative technical design process.
Research and find effective solutions to technical issues that arise.
Update development timelines based on final requirements.
Liaise with the relevant subject matter experts where clarification is required.
Translate technical requirements into executable code without errors.
Ensure optimally performing system code in line with technical specifications, following prescribed process, architecture standards and procedures.
Ensure delivery within agreed timeframes.
Conduct unit testing and fix any defects found within the agreed SLA.
Escalate risks to the project early on.
Quality and Testing :
Run code through the automated code review tool, review errors with the technical lead and fix before committing to the code base.
Perform peer code reviews to ensure consistent application of standards, logic and effective use of libraries and reusable aspects of the software.
Develop and maintain reusable Unit Tests.
Assist the Test Analyst in ensuring that a comprehensive test pack is produced, which includes all the required scenarios.
Verify that the completed software meets the established standards and is fit for purpose.
Review the risk / impact of defects found in testing, prioritize and ensure that the priority is accurate.
Risk and Release Management :
Conform to the Build and Release cycles.
Provide timeous support to the Quality Assurance Team when issues arise during testing.
Handle all outstanding defects.
Production Support and Root Cause management :
Ensure that the root cause of system errors are effectively analysed and prioritized for fixing.
Proactively bring issues and problems to the attention of the team and propose solutions to solve them.
Assist system users and the infrastructure teams with technical support issues.
Team Collaboration :
Adhere to the culture of communication and collaboration across all teams.
Attend and participate in the regular team / project stand-ups.
Actively mentor team members where required.
Provide feedback at the regular 1-on-1’s with your leader.
Proactively set goals, track them and address any concerns with your leader.
Participate in Performance reviews with your line manager and project leads.
Actively participate in internal up-skilling initiatives.
Transfer knowledge and contribute to building a shared knowledge base.
Personal development :
Keep abreast of current technological trends and how these might be applied in the Discovery environment.
Constant improvement of knowledge of the various applications, their functions and data models.
Ability to communicate clearly, constructively and effectively. Able to follow and participate in technical, business process, and other discussions.
Able to build strong business relationships with other members of the team and the business areas we support.
Personal Attributes and Skills
Knowledge Processes :
Data modelling and design of database structures, including tools such as Enterprise Architect.
Unit and Systems Integration testing
SDLC methodologies (Agile, Waterfall, DevOps, etc) and tools (Jira, BitBucket, Quality Center, etc)
GIT version control
Advanced knowledge / experience Technologies :
Java programming language (Java 7 or later)
JBoss / Weblogic EAP (or similar Application Server)
Data layer (JPA, Domain Object Model, XML / XSD, JAXB, ORM frameworks, RDBMS Oracle and PL / SQL beneficial)
Business services (EJB, RMI)
Integration services (JMS, Apache Camel, REST / SOAP web services)
Messaging systems (Tibco EMS, Oracle Advanced Queuing, MQ)
Design patterns (DAO, Command pattern, MVC, etc)
Spring Framework ( Spring MVC , Spring Batch)
JUnit and JMock
Build tools (Apache Ant, Maven, Jenkins, etc)
Personal Attributes :
Ability to work in a team
Excellent communication skills
A good understanding of how to map business requirements to technology solutions
Education and Experience
3-year university degree in computer science or business informatics, or similar qualification, is highly preferable
5 or more years’ experience in building and maintaining Java applications