Overview 
Intermediate Java Developer (IT08) role at University of the Witwatersrand.
Responsibilities 
- Software Development: Design, code, test, and debug software applications using Java and related technologies.
 
 This includes developing high-quality, efficient, and maintainable code that meets project requirements and industry standards.
 
 
- Application Design: Collaborate with software architects and technical leads to design and implement software solutions.
 
 Participate in architectural discussions, propose enhancements, and contribute to the overall system design.
 
 
- Technical Troubleshooting: Identify and resolve technical issues, bugs, and performance bottlenecks in a timely manner.
 
 This includes conducting root cause analysis and implement corrective measures.
 
 
- Code Review: Conduct thorough code reviews to ensure adherence to coding standards, best practices, and quality guidelines.
 
 Provide constructive feedback to peers and junior developers to improve code quality.
 
 
- Collaboration and Communication: Work closely with cross-functional teams to understand business requirements and translate them into technical specifications.
 
 Effectively communicate project status, challenges, and progress to team members and stakeholders.
 
 
- Documentation: Create and maintain technical documentation, including design documents, user guides, and release notes.
 
 Ensure the accuracy and completeness of documentation to facilitate knowledge sharing and future development.
 
 
- Agile Development: Contribute to an Agile development environment by participating in daily stand-up meetings, sprint planning, and retrospectives.
 
 Collaborate with the team to deliver iterative and incremental software releases.
 
 
- Continuous Improvement: Stay up to date with the latest industry trends, technologies, and best practices related to Java development.
 
 Proactively identify opportunities for process improvement, code optimization, and system performance enhancement.
 
 
Qualifications 
- Education: Bachelor's degree in Computer Science, Software Engineering, or a related field preferred.
 
 Equivalent work experience will also be considered.
 
 
- Experience: Minimum of 2 years of professional experience in Java software development.
 
 Proven track record of delivering high-quality, scalable, and maintainable software solutions.
 
 
- Java Expertise: Strong knowledge of core Java concepts, object-oriented programming (OOP) principles, and design patterns.
 
 Experience with Spring Java framework is highly desirable.
 
 
- Web Development: Proficiency in web development technologies such as HTML, CSS, JavaScript, and related frameworks (e.g., Angular, React).
 
 Experience with server-side technologies (e.g., Servlets, JSP, FreeMarker) is a plus.
 
 
- Database Knowledge: Familiarity with relational databases (e.g., MySQL, Oracle) and SQL.
 
 Experience with ORM frameworks (e.g., Hibernate, JPA) is preferred.
 
 
- Testing and Debugging: Strong debugging and problem-solving skills.
 
 Knowledge of unit testing frameworks (e.g., JUnit) and proficiency in debugging tools (e.g., Eclipse, IntelliJ IDEA) is essential.
 
 
- Version Control: Experience with version control systems (e.g., Git) and familiarity with branching and merging strategies.
 
 
- Collaboration and Communication: Excellent teamwork and communication skills.
 
 Ability to work collaboratively in a cross-functional team environment.
 
 
- Adaptability: Strong willingness to learn and adapt to new technologies, tools, and processes.
 
 Demonstrated ability to quickly grasp complex concepts and technologies.
 
 
  #J-18808-Ljbffr