Developer
Achieve more than YOU BELIEVE |
Discovery – Group Information Services – CBS
Java Developer
About Discovery
Discovery’s core purpose is to make people healthier and to enhance and protect their lives. We seek out and invest in exceptional individuals who understand and support our core purpose, and whose own values align with those of Discovery. Our fast-paced and dynamic environment enables smart, self-driven people to be their best. As global thought leaders, Discovery is passionate about innovating in order to not only achieve financial success, but to ignite positive and meaningful change within our society.
About Group Information Services – Corporate Business Systems
Our division is responsible for designing, building and supporting central applications that are used both inside Discovery, as well as externally by our brokers ,financial advisors and Clients.
Key Purpose
Work closely with a passionate development team to design, develop and maintain solutions for a dynamic, multi-national company that sets the benchmark in its industry. Must be a team player and have the ability to work with both vertical and horizontal colleagues both in a formal and informal setting.
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 an 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 is 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
Knowledge – Processes:
- Design patterns
- 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, GIT, etc)
- Software Versioning
- SOLID Design Principles
- Clean Code Practices and Principles
- Systems Design
Advanced knowledge/experience – Technologies:
- Java programming language (Java 8 or later)
- Java EE
- Object Oriented Programming
- JBoss/Weblogic EAP (or similar Application Server)
- Data layer (JPA, Domain Object Model, XML/XSD, JAXB, ORM frameworks, RDBMS (Oracle/PLSQL and PostgreSQL beneficial)
- Business services (EJB, RMI)
- Integration services (JMS, Apache Camel, REST / SOAP web services)
- Messaging systems (Tibco EMS, Oracle Advanced Queuing, MQ)
- Presentation layer technologies (Java Server Faces, Java Server Pages, HTML 5, JavaScript, jQuery, CSS3)
- Design patterns (DAO, Command pattern, MVC, Factory, etc)
- JUnit or JMock
- XML knowledge
- JSON knowledge
- Build tools (Apache Ant, Maven, Jenkins, etc)
Personal Attributes:
- Empathic and curious self-starter who takes ownership and accountability and can work with minimal supervision – Most Important!
- Passionate about technology and development
- Results oriented with the ability to work under pressure and cope with multiple concurrent projects
- Patience, perseverance and problem-solving skills
- Detail oriented and organized
- Strong analytical and logic skills
- Abstract thinking to be able to deal with complexity by switching between detail and high-level perspectives
- Highly adaptable to accommodate changes in technologies, scope, emergent requirements and deadlines
- Excellent written and verbal communication skills
Education and Experience
- 3-year university degree in computer science or business informatics, or similar qualification, is highly preferable
- Experience in building and maintaining Java applications:
- 0-2 years -> Junior
- 2-5 years -> Intermediate
- 5+ years -> Senior
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.