Job Brief
Areas of responsibility:
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
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, Quality Center, etc)
- GIT version control
Advanced knowledge/experience – Technologies:
- Java programming language (Java 7 or later)
- Java EE
- 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)
- Presentation layer technologies (Java Server Faces, Java Server Pages, HTML 5, JavaScript, jQuery, CSS3)
- Design patterns (DAO, Command pattern, MVC, etc)
- Spring Framework ( Spring MVC , Spring Batch)
- Hibernate
- JUnit or JMock
- XML knowledge
- JSON knowledge
- SonarQube
- Build tools (Apache Ant, Maven, Jenkins, etc)
Personal Attributes:
- 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 with changing priorities and deadlines
- Strong analytical and problem-solving skills
- Ability to deal with complexity and migrate between detailed and high-level requirements
- 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
- 7 or more years’ experience in building and maintaining Java applications
Desired Skills:
- Design patterns
- database structures
- Enterprise Architect
- Unit and Systems Integration testing
- SDLC methodologies
- Jira
- BitBucket
About The Employer:
Reverside is a Global ICT company focusing on Digital Engineering, Integration, Cyber-Security, Cloud and Digital Transformation services with delivery centres in Johannesburg and Cape Town, South Africa and Gurgaon, India. Reverside has its Global Headquarter in South Africa and is a B-BBEE Level 1 IT consulting & services organization. Reverside was founded in 2006 and has since grown to a strong team of over 300+ consultants, serving more than 40+ active clients [URL Removed] – [URL Removed] – [URL Removed]