Java Engineer

Permanent - Johannesburg
Qualifications & Experience 
• BSc in Computer Science, Software Engineering, or a related field, or equivalent practical experience.
• 4–5+ years of professional Java development experience.
• Strong knowledge of Java or Kotlin and object-oriented programming principles, including inheritance, encapsulation and polymorphism.
• Experience with Spring Boot and the Spring Framework for developing microservices and RESTful APIs.
• Experience with Angular and modern web application development.
• Proficiency in JPA/Hibernate, SQL and JDBC, including database schema design, queries and data updates.
• Experience with unit testing using JUnit or similar testing frameworks.
• Knowledge of software architecture, clean coding practices and application performance monitoring.
• Exposure to NoSQL databases such as MongoDB and GraphQL would be advantageous.
• Experience with CI/CD pipelines, DevOps tools and version control processes would be beneficial.
• Knowledge of HTML5, CSS, JavaScript, J2EE, JSP or MVC frameworks would be advantageous.
Responsibilities
• Design, develop and maintain cloud-ready software services and RESTful APIs.
• Develop and maintain microservices using Java or Kotlin and the Spring Framework.
• Take ownership of software features throughout the development lifecycle, including database design, service development, testing, deployment and monitoring.
• Design, develop and maintain database schemas, queries and data persistence solutions.
• Write clean, maintainable and efficient code in line with established development standards.
• Perform unit testing and ensure software solutions meet quality and reliability requirements.
• Participate in code reviews, pair programming and technical discussions to improve code quality.
• Contribute to system design and software architecture decisions.
• Collaborate with cross-functional teams to understand requirements and deliver effective software solutions.
• Identify, investigate and resolve technical issues and improve application performance.
• Contribute to continuous integration, deployment and monitoring processes.
• Share technical knowledge and support continuous improvement within the development team.
Competency
• Strong analytical and problem-solving skills.
• Excellent Java development and object-oriented programming skills.
• Ability to design and develop scalable, reliable and maintainable software solutions.
• Strong understanding of software engineering principles, clean architecture and testing practices.
• Accountability and ownership of tasks, deliverables and project outcomes.
• Ability to work independently and manage responsibilities with minimal supervision.
• Strong teamwork and collaboration skills.
• Clear communication and willingness to give and receive constructive feedback.
• Adaptability and a willingness to learn new technologies and development practices.
• Curiosity and a practical approach to selecting appropriate technologies and solving technical challenges.
• Commitment to continuous learning, knowledge sharing and engineering excellence.
    © 2024 Rough Diamonds Studio. All rights reserved.