Java Developer (Senior) at Discovery in Sandton
Business Unit: Discovery Life
Function: Java Development
Date: 18-Nov-2022
About Life Systems
Discovery Life is an ever growing fast-paced and dynamic environment that provides innovative risk assurance to individual clients. This environment thrives on customer engagement and customer experience as well as mutually beneficial relationships with our brokers and other stakeholders. It is important for our employees to provide a world class service to our internal and external clients, thereby ensuring long and sustainable relationships.
To fulfil a pivotal role within a software development team that designs, develops and maintains the systems for Discovery’s dynamic Life Insurance business.
Key Purpose
To fulfil a pivotal role within a software development team that designs, develops and maintains the systems for Discovery’s dynamic Life Insurance business.
Areas of responsibility may include but not limited to
Planning:
- 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.
Development:
- 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.
General:
- 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
Intermediate knowledge of:
- Applicable programming disciplines and languages. Refer to technical competencies list.
- Data modelling and design of database structures
- Unit Testing
- Systems Integration testing
- SDLC methodologies
Behavioural Skills:
- Action orientated go-getter, hungry to learn and add real value.
- Self-motivated.
- Driven by a sense of responsibility and ownership.
- Structured and analytical problem solver: Obsessive about finding solutions to problems.
- Able to plan, organise and prioritize own work.
- Attention to detail.
- Able to multitask.
- Highly adaptive and flexible to a changing environment.
- Able to work independently, but also as an effective member of a Team: reliable, works actively with others towards common goal, communicates constructively, shares information, knowledge and experience, treats others in a respectful and supportive manner.
Education and Experience
Essential:
- 5+ years’ experience in software development
- IT related Degree or Diploma (BSc/BTech or similar).
Advantageous:
- Formal software development qualification(s), such as Object-Oriented Analysis & Design.
Key Technical Competencies
General:
- Version control (GIT)
- UML and modelling tools (Enterprise Architect, etc)
- SDLC methodologies (Agile, Waterfall, DevOps, etc)
- SQL
Java:
- Java programming language
- Java EE
- JBoss EAP (or similar Application Server)
- Data layer (JPA, Domain Object Model, XML/XSD, JAXB, ORM frameworks, RDBMS and PL/SQL beneficial)
- Business services (EJB, RMI)
- Integration services (Apache Camel, REST / SOAP web services)
- Messaging systems (JMS, Tibco EMS, Oracle Advanced Queuing, MQ)
- Presentation layer technologies (JavaServer Faces, HTML 5, JavaScript, CSS3)
- Design patterns (DAO, Command pattern, MVC, etc)
- Testing methodologies (Junit)
- Code quality tools (SonarQube)
- Build tools (Apache Ant, Jenkins, etc)
- SDLC tools (Jira, BitBucket, etc)
EMPLOYMENT EQUITY
The Company’s approved Employment Equity Plan and Targets will be considered as part of the recruitment process. As an Equal Opportunities employer, we actively encourage and welcome people with various disabilities to apply.