We are looking for an experienced Java Software Developer to join a collaborative software development team responsible for designing, developing, maintaining and supporting business-critical applications.

The successful candidate will contribute throughout the full Software Development Life Cycle (SDLC), from technical analysis and design through to development, testing, release management and production support.

This is an opportunity for a motivated developer who enjoys solving complex technical problems, takes ownership of their work and is committed to delivering high-quality, reliable software solutions.

Key Responsibilities

Perform high-level impact analysis, define scope and provide estimates based on technical requirements.

Proactively engage with stakeholders to clarify requirements and dependencies.

Create and manage planning tasks within the relevant SDLC tools.

Set and manage delivery timelines in line with agreed milestones.

Technical Analysis and Design

Participate actively in collaborative technical design and solutioning processes.

Research and identify effective solutions to technical challenges.

Work with subject matter experts and stakeholders to clarify technical and business requirements.

Update development timelines based on finalised requirements and technical decisions.

Software Development

Translate technical requirements into high-quality, maintainable and executable code.

Develop software in accordance with technical specifications, architecture standards, development processes and organisational procedures.

Deliver solutions within agreed timelines and quality standards.

Conduct unit testing and resolve defects within agreed service levels.

Identify and escalation technical risks and delivery concerns at an early stage.

Quality Assurance and Testing

Use automated code review tools and resolve identified issues before committing code to the codebase.

Participate in peer code reviews to ensure consistent application of development standards, sound logic and effective use of reusable components and libraries.

Develop and maintain comprehensive, reusable unit tests.

Support Test Analysts in ensuring comprehensive test coverage and test packs.

Verify that completed software meets defined quality standards and is fit for purpose.

Assess and prioritise defects based on business and technical risk and impact.

Risk and Release Management

Adhere to established build, deployment and release management processes.

Provide timely technical support to Quality Assurance teams during testing cycles.

Investigate and resolve outstanding defects.

Support the successful delivery of software releases in accordance with agreed processes and timelines.

Production Support and Root Cause Analysis

Analyse system errors and identify root causes.

Prioritise issues appropriately and contribute to permanent corrective solutions.

Proactively identify technical issues and recommend appropriate solutions.

Provide technical support to system users and infrastructure teams where required.

Assist with incident resolution and ongoing system stability.

Team Collaboration and Knowledge Sharing

Promote a culture of communication, collaboration and continuous improvement.

Participate actively in Agile ceremonies, team meetings, project stand-ups and technical discussions.

Mentor and support other team members where appropriate.

Share knowledge, experience and technical expertise across the team.

Contribute to the development and maintenance of shared technical documentation and knowledge bases.

Participate in internal learning, development and upskilling initiatives.

Set personal development goals and actively track progress.

Continuous Professional Development

Keep up to date with current software development trends, technologies and best practices.

Identify opportunities to apply new technologies and approaches to improve software solutions.

Continuously improve knowledge of application functionality, system architecture and underlying data models.

Required Skills and Experience

Minimum of 3 years' experience in software development.

Relevant IT Degree or Diploma, such as BSc, BTech or equivalent.

Practical experience working across the Software Development Life Cycle.

Strong experience with Java-based software development.

Experience with version control systems, particularly Git.

Experience with unit testing and software quality practices.

Experience working with database structures and data modelling.

Understanding of systems integration testing.

Experience working within structured SDLC methodologies and development processes.

Advantageous

Formal qualifications in software development.

Training or experience in Object-Oriented Analysis and Design.

Experience working in Agile development environments.

Experience with enterprise application development and production support.

Version control, particularly Git.

Software development methodologies and SDLC processes.

Unit testing and testing methodologies.

Systems integration testing.

Data modelling and database design.

Experience with SDLC and project management tools such as Jira and Bitbucket.

Strong knowledge of the Java programming language.

Experience with Java EE / Jakarta EE.

Experience with JBoss EAP or a similar enterprise application server.

Experience with data layer technologies, including:

JPA

Object-Relational Mapping (ORM) frameworks

XML / XSD

JAXB

Relational Database Management Systems (RDBMS)

PL/SQL — advantageous

Experience with enterprise business services, including EJB.

Knowledge of presentation-layer technologies, including:

HTML5

CSS3

Java Server Faces (JSF)

The successful candidate will be:

Action-oriented, proactive and eager to learn.

Self-motivated and driven to deliver meaningful results.

Accountable and committed to taking ownership of responsibilities.

A structured and analytical problem solver with a strong focus on finding practical solutions.

Able to plan, organise and prioritise work effectively.

Detail-oriented, with a strong focus on quality.

Able to manage multiple priorities in a dynamic environment.

Adaptable and flexible when working with changing requirements and priorities.

Comfortable working independently while also contributing effectively as part of a team.

A clear, constructive and effective communicator.

Able to build strong working relationships with technical teams, business stakeholders and other areas of the organisation.

Committed to knowledge sharing, collaboration and continuous professional development.

What You Can Expect

The opportunity to work on complex enterprise software solutions.

A collaborative and technically focused development environment.

Exposure to the full software development life cycle.

Opportunities to contribute to technical design, architecture and continuous improvement.

A culture that values ownership, innovation, learning and teamwork. #J-18808-Ljbffr

Similar jobs

Java software developer

Apply Now
Back to search page